summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2017-11-07 15:24:47 +0100
committerJiri Kosina <jkosina@suse.cz>2017-11-09 13:31:04 +0100
commit492ca83c3d19fba1622164f07cd7b775596a7db2 (patch)
tree200cedfd197ea0e2fb09357ae1ab773fd6432c84
parentbe7484acc6fee2878dc8d1593ba81fb1e0b3d581 (diff)
downloadlinux-492ca83c3d19fba1622164f07cd7b775596a7db2.tar.gz
linux-492ca83c3d19fba1622164f07cd7b775596a7db2.tar.bz2
linux-492ca83c3d19fba1622164f07cd7b775596a7db2.zip
HID: sony: Fix SHANWAN pad rumbling on USB
The SHANWAN PS3 clone joypad will start its rumble motors as soon as it is plugged in via USB. As the additional USB interrupt does nothing on the original PS3 Sixaxis joypads, and makes a number of other clone joypads actually start sending data, disable that call for the SHANWAN so the rumble motors aren't started on plug. Signed-off-by: Bastien Nocera <hadess@hadess.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/hid-sony.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
index d03203a82e8f..b9dc3ac4d4aa 100644
--- a/drivers/hid/hid-sony.c
+++ b/drivers/hid/hid-sony.c
@@ -1439,10 +1439,16 @@ static int sixaxis_set_operational_usb(struct hid_device *hdev)
goto out;
}
- ret = hid_hw_output_report(hdev, buf, 1);
- if (ret < 0) {
- hid_info(hdev, "can't set operational mode: step 3, ignoring\n");
- ret = 0;
+ /*
+ * But the USB interrupt would cause SHANWAN controllers to
+ * start rumbling non-stop.
+ */
+ if (strcmp(hdev->name, "SHANWAN PS3 GamePad")) {
+ ret = hid_hw_output_report(hdev, buf, 1);
+ if (ret < 0) {
+ hid_info(hdev, "can't set operational mode: step 3, ignoring\n");
+ ret = 0;
+ }
}
out: