From 79bacf658e3c8d425cce29094bf3756f926f77e4 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Fri, 29 Jan 2016 15:21:39 -0500 Subject: [PATCH] Backport HID sony patch to fix some gamepads (rhbz 1255235) --- ...bail-out-when-the-sixaxis-refuses-th.patch | 49 +++++++++++++++++++ kernel.spec | 6 +++ 2 files changed, 55 insertions(+) create mode 100644 HID-sony-do-not-bail-out-when-the-sixaxis-refuses-th.patch diff --git a/HID-sony-do-not-bail-out-when-the-sixaxis-refuses-th.patch b/HID-sony-do-not-bail-out-when-the-sixaxis-refuses-th.patch new file mode 100644 index 000000000..b1a789e84 --- /dev/null +++ b/HID-sony-do-not-bail-out-when-the-sixaxis-refuses-th.patch @@ -0,0 +1,49 @@ +From 954d6154959c8c196fa4b89fc98a4fb377c6a38d Mon Sep 17 00:00:00 2001 +From: Benjamin Tissoires +Date: Fri, 8 Jan 2016 17:58:49 +0100 +Subject: [PATCH] HID: sony: do not bail out when the sixaxis refuses the + output report + +When setting the operational mode, some third party (Speedlink Strike-FX) +gamepads refuse the output report. Failing here means we refuse to +initialize the gamepad while this should be harmless. + +The weird part is that the initial commit that added this: a7de9b8 +("HID: sony: Enable Gasia third-party PS3 controllers") mentions this +very same controller as one requiring this output report. +Anyway, it's broken for one user at least, so let's change it. +We will report an error, but at least the controller should work. + +And no, these devices present themselves as legacy Sony controllers +(VID:PID of 054C:0268, as in the official ones) so there are no ways +of discriminating them from the official ones. + +https://bugzilla.redhat.com/show_bug.cgi?id=1255325 + +Reported-and-tested-by: Max Fedotov +Signed-off-by: Benjamin Tissoires +Signed-off-by: Jiri Kosina +--- + drivers/hid/hid-sony.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c +index 661f94f8ab8b..11f91c0c2458 100644 +--- a/drivers/hid/hid-sony.c ++++ b/drivers/hid/hid-sony.c +@@ -1411,8 +1411,10 @@ static int sixaxis_set_operational_usb(struct hid_device *hdev) + } + + ret = hid_hw_output_report(hdev, buf, 1); +- if (ret < 0) +- hid_err(hdev, "can't set operational mode: step 3\n"); ++ if (ret < 0) { ++ hid_info(hdev, "can't set operational mode: step 3, ignoring\n"); ++ ret = 0; ++ } + + out: + kfree(buf); +-- +2.5.0 + diff --git a/kernel.spec b/kernel.spec index 7232b3a92..6ac8596ef 100644 --- a/kernel.spec +++ b/kernel.spec @@ -612,6 +612,9 @@ Patch642: KEYS-only-apply-KEY_FLAG_KEEP-to-a-key-if-a-parent.patch Patch644: wext-fix-message-delay-ordering.patch Patch645: cfg80211-wext-fix-message-ordering.patch +#rhbz 1255325 +Patch646: HID-sony-do-not-bail-out-when-the-sixaxis-refuses-th.patch + # END OF PATCH DEFINITIONS %endif @@ -2057,6 +2060,9 @@ fi # # %changelog +* Fri Jan 29 2016 Josh Boyer +- Backport HID sony patch to fix some gamepads (rhbz 1255235) + * Fri Jan 29 2016 Justin M. Forbes - 4.5.0-0.rc1.git2.1 - Linux v4.5-rc1-32-g26cd836