public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: add quirks for Lenovo OneLink+ Dock
@ 2022-08-24 16:09 JFLF
  2022-08-24 16:19 ` Greg KH
  2022-08-30 11:54 ` Oliver Neukum
  0 siblings, 2 replies; 11+ messages in thread
From: JFLF @ 2022-08-24 16:09 UTC (permalink / raw)
  To: gregkh, linux-usb, linux-kernel; +Cc: JFLF

The Lenovo OneLink+ Dock contains two VL812 USB3.0 controllers:
17ef:1018 upstream
17ef:1019 downstream

Those two controllers both have problems with some USB3.0 devices,
particularly self-powered ones. Typical error messages include:

  Timeout while waiting for setup device command
  device not accepting address X, error -62
  unable to enumerate USB device

By process of elimination the controllers themselves were identified as
the cause of the problem. Through trial and error the issue was solved
by using USB_QUIRK_RESET_RESUME for both chips.

Signed-off-by: JFLF <jflf_kernel@gmx.com>
---
 drivers/usb/core/quirks.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index f99a65a64..999b7c969 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -437,6 +437,10 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x1532, 0x0116), .driver_info =
 			USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL },

+	/* Lenovo ThinkPad OneLink+ Dock twin hub controllers (VIA Labs VL812) */
+	{ USB_DEVICE(0x17ef, 0x1018), .driver_info = USB_QUIRK_RESET_RESUME },
+	{ USB_DEVICE(0x17ef, 0x1019), .driver_info = USB_QUIRK_RESET_RESUME },
+
 	/* Lenovo USB-C to Ethernet Adapter RTL8153-04 */
 	{ USB_DEVICE(0x17ef, 0x720c), .driver_info = USB_QUIRK_NO_LPM },

--
2.34.1


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

end of thread, other threads:[~2022-09-04 21:38 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-24 16:09 [PATCH] usb: add quirks for Lenovo OneLink+ Dock JFLF
2022-08-24 16:19 ` Greg KH
2022-08-30 11:54 ` Oliver Neukum
2022-08-30 13:56   ` jflf_kernel
2022-08-30 14:47     ` Oliver Neukum
2022-08-30 19:50       ` jflf_kernel
2022-08-31  7:31         ` Greg KH
2022-08-31  7:43           ` jflf_kernel
2022-08-31  8:35             ` Greg KH
2022-08-31  9:16         ` Oliver Neukum
2022-09-04 21:38           ` jflf_kernel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox