Re: [PATCH v4 2/2] HID: sony: Fix SHANWAN PS3 GamePad rumble and led settings support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2019-01-09 at 09:18 +0800, Hongye Yuan wrote:
> Rumble support on SHANWAN PS3 gamepad is not working when a user
> program has asked it to. If a HID Output Reports is sent via Control
> Channel then it will be discard by gamepad, thus rumble motor and led
> settings in Output Report are ignored.
> 
> This patch therefore sends HID Output Report via Interrupt Channel to
> SHANWAN gamepad instead of Control Channel, fixing rumble motor and
> led settings.

Excellent, exactly what I wanted to see in the commit message, thanks.

Reviewed-by: Bastien Nocera <hadess@xxxxxxxxxx>

> 
> Signed-off-by: Hongye Yuan <outmatch@xxxxxxxxx>
> 
> ---
>  Changes in v4:
>   - Explain what this patch fixes in detail.
> ---
>  drivers/hid/hid-sony.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
> index fc82f02bae75..26fae90b931a 100644
> --- a/drivers/hid/hid-sony.c
> +++ b/drivers/hid/hid-sony.c
> @@ -2100,9 +2100,14 @@ static void sixaxis_send_output_report(struct
> sony_sc *sc)
>  		}
>  	}
>  
> -	hid_hw_raw_request(sc->hdev, report->report_id, (u8 *)report,
> -			sizeof(struct sixaxis_output_report),
> -			HID_OUTPUT_REPORT, HID_REQ_SET_REPORT);
> +	/* SHANWAN controllers require output reports via intr channel
> */
> +	if (sc->quirks & SHANWAN_GAMEPAD)
> +		hid_hw_output_report(sc->hdev, (u8 *)report,
> +				sizeof(struct sixaxis_output_report));
> +	else
> +		hid_hw_raw_request(sc->hdev, report->report_id, (u8
> *)report,
> +				sizeof(struct sixaxis_output_report),
> +				HID_OUTPUT_REPORT, HID_REQ_SET_REPORT);
>  }
>  
>  static void dualshock4_send_output_report(struct sony_sc *sc)




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux