| From 19f4c2ba869517048add62c202f9645b6adf5dfb Mon Sep 17 00:00:00 2001 |
| From: Benjamin Tissoires <benjamin.tissoires@redhat.com> |
| Date: Fri, 8 Jan 2016 17:58:49 +0100 |
| Subject: HID: sony: do not bail out when the sixaxis refuses the output report |
| |
| From: Benjamin Tissoires <benjamin.tissoires@redhat.com> |
| |
| commit 19f4c2ba869517048add62c202f9645b6adf5dfb upstream. |
| |
| 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 <thesourcehim@gmail.com> |
| Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> |
| Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
| Cc: Laura Abbott <labbott@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/hid/hid-sony.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/hid/hid-sony.c |
| +++ b/drivers/hid/hid-sony.c |
| @@ -1418,8 +1418,10 @@ static int sixaxis_set_operational_usb(s |
| } |
| |
| 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); |