linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] HID: sony: Fix SHANWAN pad rumbling on USB
@ 2017-11-07 14:24 Bastien Nocera
  2017-11-09  8:24 ` Szymon Janc
  2017-11-09 12:32 ` Jiri Kosina
  0 siblings, 2 replies; 3+ messages in thread
From: Bastien Nocera @ 2017-11-07 14:24 UTC (permalink / raw)
  To: linux-input; +Cc: linux-kernel, Jiri Kosina, Szymon Janc, Bastien Nocera

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>
---
 drivers/hid/hid-sony.c | 14 ++++++++++----
 1 file 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:
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] HID: sony: Fix SHANWAN pad rumbling on USB
  2017-11-07 14:24 [PATCH] HID: sony: Fix SHANWAN pad rumbling on USB Bastien Nocera
@ 2017-11-09  8:24 ` Szymon Janc
  2017-11-09 12:32 ` Jiri Kosina
  1 sibling, 0 replies; 3+ messages in thread
From: Szymon Janc @ 2017-11-09  8:24 UTC (permalink / raw)
  To: Bastien Nocera; +Cc: linux-input, linux-kernel, Jiri Kosina

Hi,

On Tuesday, 7 November 2017 15:24:47 CET Bastien Nocera wrote:
> 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>
> ---
>  drivers/hid/hid-sony.c | 14 ++++++++++----
>  1 file 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:

Works for me!

Tested-by: Szymon Janc <szymon.janc@codecoup.pl>

-- 
pozdrawiam
Szymon Janc

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] HID: sony: Fix SHANWAN pad rumbling on USB
  2017-11-07 14:24 [PATCH] HID: sony: Fix SHANWAN pad rumbling on USB Bastien Nocera
  2017-11-09  8:24 ` Szymon Janc
@ 2017-11-09 12:32 ` Jiri Kosina
  1 sibling, 0 replies; 3+ messages in thread
From: Jiri Kosina @ 2017-11-09 12:32 UTC (permalink / raw)
  To: Bastien Nocera; +Cc: linux-input, linux-kernel, Szymon Janc

On Tue, 7 Nov 2017, Bastien Nocera wrote:

> 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>

Applied to for-4.15/sony.

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-11-09 12:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-07 14:24 [PATCH] HID: sony: Fix SHANWAN pad rumbling on USB Bastien Nocera
2017-11-09  8:24 ` Szymon Janc
2017-11-09 12:32 ` Jiri Kosina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).