[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20221109122946.706036-1-ndumazet@google.com>
Date: Wed, 9 Nov 2022 13:29:46 +0100
From: Nicolas Dumazet <ndumazet@...gle.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jean-Francois Le Fillatre <jflf_kernel@....com>
Cc: Petar Kostic <petar@...tic.dev>, Oliver Neukum <oneukum@...e.com>,
Ole Ernst <olebowle@....com>,
Hannu Hartikainen <hannu@...k.in>,
Jimmy Wang <wangjm221@...il.com>, linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org,
Nicolas Dumazet <ndumazet@...gle.com>, stable@...r.kernel.org
Subject: [PATCH v3] usb: add NO_LPM quirk for Realforce 87U Keyboard
Before adding this quirk, this (mechanical keyboard) device would not be
recognized, logging:
new full-speed USB device number 56 using xhci_hcd
unable to read config index 0 descriptor/start: -32
chopping to 0 config(s)
It would take dozens of plugging/unpuggling cycles for the keyboard to
be recognized. Keyboard seems to simply work after applying this quirk.
This issue had been reported by users in two places already ([1], [2])
but nobody tried upstreaming a patch yet. After testing I believe their
suggested fix (DELAY_INIT + NO_LPM + DEVICE_QUALIFIER) was probably a
little overkill. I assume this particular combination was tested because
it had been previously suggested in [3], but only NO_LPM seems
sufficient for this device.
[1]: https://qiita.com/float168/items/fed43d540c8e2201b543
[2]: https://blog.kostic.dev/posts/making-the-realforce-87ub-work-with-usb30-on-Ubuntu/
[3]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1678477
Cc: stable@...r.kernel.org
Signed-off-by: Nicolas Dumazet <ndumazet@...gle.com>
---
Changes:
* v2 -> v3: fix s-o-b / patch format.
* v1 -> v2 : add the entry to the right location (sorting entries by
vendor/device id).
---
drivers/usb/core/quirks.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index 0722d2131305..079e183cf3bf 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -362,6 +362,9 @@ static const struct usb_device_id usb_quirk_list[] = {
{ USB_DEVICE(0x0781, 0x5583), .driver_info = USB_QUIRK_NO_LPM },
{ USB_DEVICE(0x0781, 0x5591), .driver_info = USB_QUIRK_NO_LPM },
+ /* Realforce 87U Keyboard */
+ { USB_DEVICE(0x0853, 0x011b), .driver_info = USB_QUIRK_NO_LPM },
+
/* M-Systems Flash Disk Pioneers */
{ USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
--
2.38.0.135.g90850a2211-goog
Powered by blists - more mailing lists