Add patch to fix oops when using xpad (rhbz 1094048)

This commit is contained in:
Josh Boyer 2014-12-01 09:26:28 -05:00
parent ad2c413a64
commit f1fc68cfe2
3 changed files with 62 additions and 5 deletions

View File

@ -0,0 +1,49 @@
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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" <pgriffais@valvesoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
---
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

View File

@ -1,4 +1,3 @@
From 83d04c39f9048807a8500e575ae3f1718a3f45bb Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexander.deucher@amd.com>
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 <alexander.deucher@amd.com>
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;

View File

@ -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 <jwboyer@fedoraproject.org>
- Add patch to fix oops when using xpad (rhbz 1094048)
* Thu Nov 27 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.17.4-301
- Add patch to fix radeon HDMI issues (rhbz 1167511)