Skip to content

Commit

Permalink
HID: sony: Fix SHANWAN pad rumbling on USB
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Bastien Nocera authored and Jiri Kosina committed Nov 9, 2017
1 parent be7484a commit 492ca83
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions drivers/hid/hid-sony.c
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit 492ca83

Please sign in to comment.