2024-01-15 14:57:00

by Max Staudt

[permalink] [raw]
Subject: [PATCH v1] HID: nintendo: Don't fail on setting baud rate

Some third-party controllers can't change the baud rate.

We can still use the gamepad as-is, so let's do that.

Signed-off-by: Max Staudt <[email protected]>
---
drivers/hid/hid-nintendo.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c
index 997c3a1adaca..8cba0612c3ae 100644
--- a/drivers/hid/hid-nintendo.c
+++ b/drivers/hid/hid-nintendo.c
@@ -2164,8 +2164,11 @@ static int joycon_init(struct hid_device *hdev)
/* set baudrate for improved latency */
ret = joycon_send_usb(ctlr, JC_USB_CMD_BAUDRATE_3M, HZ);
if (ret) {
+ /*
+ * We can function with the default baudrate.
+ * Provide a warning, and continue on.
+ */
hid_err(hdev, "Failed to set baudrate; ret=%d\n", ret);
- goto out_unlock;
}
/* handshake */
ret = joycon_send_usb(ctlr, JC_USB_CMD_HANDSHAKE, HZ);
--
2.39.2



2024-02-20 17:29:02

by Max Staudt

[permalink] [raw]
Subject: Re: [PATCH v1] HID: nintendo: Don't fail on setting baud rate

Ping :)

Do you think this patch could be upstreamed to widen the controller support?


Thank you for looking at this!

Max




On 1/15/24 23:50, Max Staudt wrote:
> Some third-party controllers can't change the baud rate.
>
> We can still use the gamepad as-is, so let's do that.
>
> Signed-off-by: Max Staudt <[email protected]>
> ---
> drivers/hid/hid-nintendo.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hid/hid-nintendo.c b/drivers/hid/hid-nintendo.c
> index 997c3a1adaca..8cba0612c3ae 100644
> --- a/drivers/hid/hid-nintendo.c
> +++ b/drivers/hid/hid-nintendo.c
> @@ -2164,8 +2164,11 @@ static int joycon_init(struct hid_device *hdev)
> /* set baudrate for improved latency */
> ret = joycon_send_usb(ctlr, JC_USB_CMD_BAUDRATE_3M, HZ);
> if (ret) {
> + /*
> + * We can function with the default baudrate.
> + * Provide a warning, and continue on.
> + */
> hid_err(hdev, "Failed to set baudrate; ret=%d\n", ret);
> - goto out_unlock;
> }
> /* handshake */
> ret = joycon_send_usb(ctlr, JC_USB_CMD_HANDSHAKE, HZ);