diff --git a/Input-xpad-use-proper-endpoint-type.patch b/Input-xpad-use-proper-endpoint-type.patch new file mode 100644 index 000000000..ef3e6066e --- /dev/null +++ b/Input-xpad-use-proper-endpoint-type.patch @@ -0,0 +1,49 @@ +From: Greg Kroah-Hartman +Date: Tue, 25 Nov 2014 00:38:17 -0800 +Subject: [PATCH] Input: xpad - use proper endpoint type + +The xpad wireless endpoint is not a bulk endpoint on my devices, but +rather an interrupt one, so the USB core complains when it is submitted. +I'm guessing that the author really did mean that this should be an +interrupt urb, but as there are a zillion different xpad devices out +there, let's cover out bases and handle both bulk and interrupt +endpoints just as easily. + +Signed-off-by: "Pierre-Loup A. Griffais" +Signed-off-by: Greg Kroah-Hartman +Cc: stable +Signed-off-by: Dmitry Torokhov +--- + drivers/input/joystick/xpad.c | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c +index 177602cf7079..e65d9c0241a9 100644 +--- a/drivers/input/joystick/xpad.c ++++ b/drivers/input/joystick/xpad.c +@@ -1143,9 +1143,19 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id + } + + ep_irq_in = &intf->cur_altsetting->endpoint[1].desc; +- usb_fill_bulk_urb(xpad->bulk_out, udev, +- usb_sndbulkpipe(udev, ep_irq_in->bEndpointAddress), +- xpad->bdata, XPAD_PKT_LEN, xpad_bulk_out, xpad); ++ if (usb_endpoint_is_bulk_out(ep_irq_in)) { ++ usb_fill_bulk_urb(xpad->bulk_out, udev, ++ usb_sndbulkpipe(udev, ++ ep_irq_in->bEndpointAddress), ++ xpad->bdata, XPAD_PKT_LEN, ++ xpad_bulk_out, xpad); ++ } else { ++ usb_fill_int_urb(xpad->bulk_out, udev, ++ usb_sndintpipe(udev, ++ ep_irq_in->bEndpointAddress), ++ xpad->bdata, XPAD_PKT_LEN, ++ xpad_bulk_out, xpad, 0); ++ } + + /* + * Submit the int URB immediately rather than waiting for open +-- +1.9.3 + diff --git a/drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch b/drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch index 034072ae6..1874c299e 100644 --- a/drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch +++ b/drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch @@ -1,4 +1,3 @@ -From 83d04c39f9048807a8500e575ae3f1718a3f45bb Mon Sep 17 00:00:00 2001 From: Alex Deucher Date: Mon, 13 Oct 2014 13:23:48 -0400 Subject: [PATCH] drm/radeon: initialize sadb to NULL in the audio code @@ -13,7 +12,7 @@ Signed-off-by: Alex Deucher 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/radeon/dce3_1_afmt.c b/drivers/gpu/drm/radeon/dce3_1_afmt.c -index 950af153f30e..6b1dbecdd36d 100644 +index 71f4d26669cd..13a27d971d35 100644 --- a/drivers/gpu/drm/radeon/dce3_1_afmt.c +++ b/drivers/gpu/drm/radeon/dce3_1_afmt.c @@ -32,7 +32,7 @@ static void dce3_2_afmt_write_speaker_allocation(struct drm_encoder *encoder) @@ -26,7 +25,7 @@ index 950af153f30e..6b1dbecdd36d 100644 list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) { diff --git a/drivers/gpu/drm/radeon/dce6_afmt.c b/drivers/gpu/drm/radeon/dce6_afmt.c -index c0bbf68dbc27..960a5f0f042f 100644 +index 790d8cafdb87..88dd17955db3 100644 --- a/drivers/gpu/drm/radeon/dce6_afmt.c +++ b/drivers/gpu/drm/radeon/dce6_afmt.c @@ -155,7 +155,7 @@ void dce6_afmt_write_speaker_allocation(struct drm_encoder *encoder) @@ -39,10 +38,10 @@ index c0bbf68dbc27..960a5f0f042f 100644 if (!dig || !dig->afmt || !dig->afmt->pin) diff --git a/drivers/gpu/drm/radeon/evergreen_hdmi.c b/drivers/gpu/drm/radeon/evergreen_hdmi.c -index 2514d659b1ba..f6a5c3026f85 100644 +index 71ebdf89fd76..993978051ede 100644 --- a/drivers/gpu/drm/radeon/evergreen_hdmi.c +++ b/drivers/gpu/drm/radeon/evergreen_hdmi.c -@@ -133,7 +133,7 @@ static void dce4_afmt_write_speaker_allocation(struct drm_encoder *encoder) +@@ -102,7 +102,7 @@ static void dce4_afmt_write_speaker_allocation(struct drm_encoder *encoder) struct drm_connector *connector; struct radeon_connector *radeon_connector = NULL; u32 tmp; diff --git a/kernel.spec b/kernel.spec index b2c1716fe..b2a21c25c 100644 --- a/kernel.spec +++ b/kernel.spec @@ -624,6 +624,9 @@ Patch26071: usb-quirks-Add-reset-resume-quirk-for-MS-Wireless-La.patch #rhbz 1167511 Patch26072: drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch +#rhbz 1094048 +Patch26073: Input-xpad-use-proper-endpoint-type.patch + # git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel Patch30000: kernel-arm64.patch @@ -1361,6 +1364,9 @@ ApplyPatch usb-quirks-Add-reset-resume-quirk-for-MS-Wireless-La.patch #rhbz 1167511 ApplyPatch drm-radeon-initialize-sadb-to-NULL-in-the-audio-code.patch +#rhbz 1094048 +ApplyPatch Input-xpad-use-proper-endpoint-type.patch + %if 0%{?aarch64patches} ApplyPatch kernel-arm64.patch %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does. @@ -2229,6 +2235,9 @@ fi # ||----w | # || || %changelog +* Mon Dec 01 2014 Josh Boyer +- Add patch to fix oops when using xpad (rhbz 1094048) + * Thu Nov 27 2014 Josh Boyer - 3.17.4-301 - Add patch to fix radeon HDMI issues (rhbz 1167511)