public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: add QUIRK_NO_BOS for several devices
@ 2026-02-04  3:29 A1RM4X
  2026-02-04  5:15 ` Greg KH
  0 siblings, 1 reply; 9+ messages in thread
From: A1RM4X @ 2026-02-04  3:29 UTC (permalink / raw)
  To: linux-usb
  Cc: gregkh, limiao, oneukum, huanglei, lijiayi, dev,
	johannes.bruederl, linux-kernel

Add QUIRK_NO_BOS entries for:
 * ASUS TUF 4K PRO (0x0b05:0x1ab9)
 * Avermedia Live Gamer Ultra 2.1 (0x07ca:0x2553)
 * UGREEN 35871 (0x2b89:0x5871)

Signed-off-by: A1RM4X <dev@a1rm4x.com>
---
 drivers/usb/core/quirks.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index c4d85089d19b..ddce45ce9f6c 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -453,6 +453,15 @@ static const struct usb_device_id usb_quirk_list[] = {
 	/* Elgato 4K X - BOS descriptor fetch hangs at SuperSpeed Plus */
 	{ USB_DEVICE(0x0fd9, 0x009b), .driver_info = USB_QUIRK_NO_BOS },
 
+	/* ASUS TUF 4K PRO - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x0b05, 0x1ab9), .driver_info = USB_QUIRK_NO_BOS },
+
+	/* Avermedia Live Gamer Ultra 2.1 (GC553G2) - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x07ca, 0x2553), .driver_info = USB_QUIRK_NO_BOS },
+
+	/* UGREEN 35871 - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x2b89, 0x5871), .driver_info = USB_QUIRK_NO_BOS },
+
 	/* Sony Xperia XZ1 Compact (lilac) smartphone in fastboot mode */
 	{ USB_DEVICE(0x0fce, 0x0dde), .driver_info = USB_QUIRK_NO_LPM },
 
-- 
2.53.0


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

* Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
  2026-02-04  3:29 [PATCH] usb: add QUIRK_NO_BOS for several devices A1RM4X
@ 2026-02-04  5:15 ` Greg KH
  2026-02-04 14:25   ` A1RM4X
  0 siblings, 1 reply; 9+ messages in thread
From: Greg KH @ 2026-02-04  5:15 UTC (permalink / raw)
  To: A1RM4X
  Cc: linux-usb, limiao, oneukum, huanglei, lijiayi, johannes.bruederl,
	linux-kernel

On Tue, Feb 03, 2026 at 10:29:38PM -0500, A1RM4X wrote:
> Add QUIRK_NO_BOS entries for:
>  * ASUS TUF 4K PRO (0x0b05:0x1ab9)
>  * Avermedia Live Gamer Ultra 2.1 (0x07ca:0x2553)
>  * UGREEN 35871 (0x2b89:0x5871)

Why?  What is the results without this option being used here?  And what
happens when userspace goes and asks for this descriptor?

> Signed-off-by: A1RM4X <dev@a1rm4x.com>

We need a real name, sorry.

> ---
>  drivers/usb/core/quirks.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> index c4d85089d19b..ddce45ce9f6c 100644
> --- a/drivers/usb/core/quirks.c
> +++ b/drivers/usb/core/quirks.c
> @@ -453,6 +453,15 @@ static const struct usb_device_id usb_quirk_list[] = {
>  	/* Elgato 4K X - BOS descriptor fetch hangs at SuperSpeed Plus */
>  	{ USB_DEVICE(0x0fd9, 0x009b), .driver_info = USB_QUIRK_NO_BOS },
>  
> +	/* ASUS TUF 4K PRO - BOS descriptor fetch hangs at SuperSpeed Plus */
> +	{ USB_DEVICE(0x0b05, 0x1ab9), .driver_info = USB_QUIRK_NO_BOS },
> +
> +	/* Avermedia Live Gamer Ultra 2.1 (GC553G2) - BOS descriptor fetch hangs at SuperSpeed Plus */
> +	{ USB_DEVICE(0x07ca, 0x2553), .driver_info = USB_QUIRK_NO_BOS },
> +
> +	/* UGREEN 35871 - BOS descriptor fetch hangs at SuperSpeed Plus */
> +	{ USB_DEVICE(0x2b89, 0x5871), .driver_info = USB_QUIRK_NO_BOS },

Please read the comment for this structure for how to place these in the
list.

thanks,

greg k-h

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

* Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
  2026-02-04  5:15 ` Greg KH
@ 2026-02-04 14:25   ` A1RM4X
  2026-02-04 14:36     ` Greg KH
  2026-02-04 14:37     ` Greg KH
  0 siblings, 2 replies; 9+ messages in thread
From: A1RM4X @ 2026-02-04 14:25 UTC (permalink / raw)
  To: Greg KH
  Cc: A1RM4X, linux-usb, limiao, oneukum, huanglei, lijiayi,
	johannes.bruederl, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 5422 bytes --]

Hi,

Please find attached the new patch which fixes the structure of the commit.

Why? If the option is not being used, the speed limit will be limited
to 5000M, which limits the capture capabilities of the device (4K30fps
at 5000M versus the expected 4K60fps at 10000M).

What happens in userspace?
- without patch
[ 5036.674972] usb 2-2: new SuperSpeed Plus Gen 2x1 USB device number
2 using xhci_hcd
[ 5041.770595] usb 2-2: unable to get BOS descriptor or descriptor too short
[ 5041.770605] usb 2-2: unable to read config index 0 descriptor/start: -19
[ 5041.955592] usb 2-2: Device not responding to setup address.
[ 5042.162588] usb 2-2: Device not responding to setup address.
[ 5042.370246] usb 2-2: device not accepting address 3, error -71
[ 5042.373859] usb usb2-port2: attempt power cycle
[ 5043.691464] usb 2-2: new SuperSpeed USB device number 5 using xhci_hcd
[ 5043.887185] usb 2-2: LPM exit latency is zeroed, disabling LPM.
[ 5043.980556] usb 2-2: New USB device found, idVendor=2b89,
idProduct=5871, bcdDevice= 0.00
[ 5043.980561] usb 2-2: New USB device strings: Mfr=6, Product=7, SerialNumber=3
[ 5043.980563] usb 2-2: Product: UGREEN 35871
[ 5043.980564] usb 2-2: Manufacturer: UGREEN 35871
[ 5043.980564] usb 2-2: SerialNumber: PRODUCT
[ 5044.166844] hid-generic 0003:2B89:5871.0007: hiddev99,hidraw6: USB
HID v1.11 Device [UGREEN 35871 UGREEN 35871] on
usb-0000:0b:00.0-2/input4
[ 5044.188946] videodev: Linux video capture interface: v2.00
[ 5044.207601] uvcvideo 2-2:1.1: Unknown video format
30313050-0000-0010-8000-00aa00389b71
[ 5044.207606] uvcvideo 2-2:1.0: Found UVC 1.00 device UGREEN 35871 (2b89:5871)
[ 5044.242584] usbcore: registered new interface driver uvcvideo

/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5p, 20000M/x2
    |__ Port 002: Dev 005, If 0, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 002: Dev 005, If 1, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 002: Dev 005, If 2, Class=Audio, Driver=snd-usb-audio, 5000M
    |__ Port 002: Dev 005, If 3, Class=Audio, Driver=snd-usb-audio, 5000M
    |__ Port 002: Dev 005, If 4, Class=Human Interface Device,
Driver=usbhid, 5000M


- with patch
[   51.913978] usb 6-1: new SuperSpeed Plus Gen 2x1 USB device number
3 using xhci_hcd
[   52.181717] usb 6-1: New USB device found, idVendor=2b89,
idProduct=5871, bcdDevice= 0.00
[   52.181721] usb 6-1: New USB device strings: Mfr=6, Product=7, SerialNumber=3
[   52.181724] usb 6-1: Product: UGREEN 35871
[   52.181726] usb 6-1: Manufacturer: UGREEN 35871
[   52.181728] usb 6-1: SerialNumber: PRODUCT
[   52.284659] uvcvideo 6-1:1.1: Unknown video format
30313050-0000-0010-8000-00aa00389b71
[   52.284666] uvcvideo 6-1:1.0: Found UVC 1.00 device UGREEN 35871 (2b89:5871)
[   52.475086] hid-generic 0003:2B89:5871.000A: hiddev100,hidraw6: USB
HID v1.11 Device [UGREEN 35871 UGREEN 35871] on
usb-0000:0e:00.3-1/input4

/:  Bus 006.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
    |__ Port 001: Dev 003, If 0, Class=Video, Driver=uvcvideo, 10000M
    |__ Port 001: Dev 003, If 1, Class=Video, Driver=uvcvideo, 10000M
    |__ Port 001: Dev 003, If 2, Class=Audio, Driver=snd-usb-audio, 10000M
    |__ Port 001: Dev 003, If 3, Class=Audio, Driver=snd-usb-audio, 10000M
    |__ Port 001: Dev 003, If 4, Class=Human Interface Device,
Driver=usbhid, 10000M


If more debug tests are required, please let me know how to proceed.

--------------------------------

Regarding the Signed‑off‑by line, I would like to use my public
content‑creator alias rather than my personal identity. Could you
advise how to do this while remaining compliant with the DCO?

Thanks,
A1RM4X

On Wed, Feb 4, 2026 at 12:15 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>
> On Tue, Feb 03, 2026 at 10:29:38PM -0500, A1RM4X wrote:
> > Add QUIRK_NO_BOS entries for:
> >  * ASUS TUF 4K PRO (0x0b05:0x1ab9)
> >  * Avermedia Live Gamer Ultra 2.1 (0x07ca:0x2553)
> >  * UGREEN 35871 (0x2b89:0x5871)
>
> Why?  What is the results without this option being used here?  And what
> happens when userspace goes and asks for this descriptor?
>
> > Signed-off-by: A1RM4X <dev@a1rm4x.com>
>
> We need a real name, sorry.
>
> > ---
> >  drivers/usb/core/quirks.c | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> >
> > diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
> > index c4d85089d19b..ddce45ce9f6c 100644
> > --- a/drivers/usb/core/quirks.c
> > +++ b/drivers/usb/core/quirks.c
> > @@ -453,6 +453,15 @@ static const struct usb_device_id usb_quirk_list[] = {
> >       /* Elgato 4K X - BOS descriptor fetch hangs at SuperSpeed Plus */
> >       { USB_DEVICE(0x0fd9, 0x009b), .driver_info = USB_QUIRK_NO_BOS },
> >
> > +     /* ASUS TUF 4K PRO - BOS descriptor fetch hangs at SuperSpeed Plus */
> > +     { USB_DEVICE(0x0b05, 0x1ab9), .driver_info = USB_QUIRK_NO_BOS },
> > +
> > +     /* Avermedia Live Gamer Ultra 2.1 (GC553G2) - BOS descriptor fetch hangs at SuperSpeed Plus */
> > +     { USB_DEVICE(0x07ca, 0x2553), .driver_info = USB_QUIRK_NO_BOS },
> > +
> > +     /* UGREEN 35871 - BOS descriptor fetch hangs at SuperSpeed Plus */
> > +     { USB_DEVICE(0x2b89, 0x5871), .driver_info = USB_QUIRK_NO_BOS },
>
> Please read the comment for this structure for how to place these in the
> list.
>
> thanks,
>
> greg k-h
>

[-- Attachment #2: 0001-PATCH-v2-usb-core-reorder-BOS-quirk-entries-alphabet.patch --]
[-- Type: text/x-patch, Size: 3226 bytes --]

From 17b5dc3b7bc7b7ae643334908b238e6eb1dfa81e Mon Sep 17 00:00:00 2001
From: A1RM4X <dev@a1rm4x.com>
Date: Wed, 4 Feb 2026 08:19:56 -0500
Subject: [PATCH] =?UTF-8?q?[PATCH=20v2]=20usb:=20core:=20reorder=20BOS?=
 =?UTF-8?q?=E2=80=91quirk=20entries=20alphabetically?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* usb: add QUIRK_NO_BOS for several devices
  - Disables BOS handling on devices that break when the BOS
    descriptor is read (e.g. UGREEN 35871).  Prevents the kernel
    from falling back to a 5 Gbps link speed, unlocking the
    expected 10 Gbps/4K 60 fps mode.

* usb: core: reorder BOS‑quirk entries alphabetically
  - The three USB_QUIRK_NO_BOS entries are now placed in the
alphabetical order required by the file header.

Signed-off-by: A1RM4X <dev@a1rm4x.com>
---
 drivers/usb/core/quirks.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index ddce45ce9f6c..f4c80063864f 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -377,6 +377,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 	/* SanDisk Extreme 55AE */
 	{ USB_DEVICE(0x0781, 0x55ae), .driver_info = USB_QUIRK_NO_LPM },
 
+	/* Avermedia Live Gamer Ultra 2.1 (GC553G2) - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x07ca, 0x2553), .driver_info = USB_QUIRK_NO_BOS },
+
 	/* Realforce 87U Keyboard */
 	{ USB_DEVICE(0x0853, 0x011b), .driver_info = USB_QUIRK_NO_LPM },
 
@@ -437,6 +440,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x0b05, 0x17e0), .driver_info =
 			USB_QUIRK_IGNORE_REMOTE_WAKEUP },
 
+	/* ASUS TUF 4K PRO - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x0b05, 0x1ab9), .driver_info = USB_QUIRK_NO_BOS },
+
 	/* Realtek Semiconductor Corp. Mass Storage Device (Multicard Reader)*/
 	{ USB_DEVICE(0x0bda, 0x0151), .driver_info = USB_QUIRK_CONFIG_INTF_STRINGS },
 
@@ -453,15 +459,6 @@ static const struct usb_device_id usb_quirk_list[] = {
 	/* Elgato 4K X - BOS descriptor fetch hangs at SuperSpeed Plus */
 	{ USB_DEVICE(0x0fd9, 0x009b), .driver_info = USB_QUIRK_NO_BOS },
 
-	/* ASUS TUF 4K PRO - BOS descriptor fetch hangs at SuperSpeed Plus */
-	{ USB_DEVICE(0x0b05, 0x1ab9), .driver_info = USB_QUIRK_NO_BOS },
-
-	/* Avermedia Live Gamer Ultra 2.1 (GC553G2) - BOS descriptor fetch hangs at SuperSpeed Plus */
-	{ USB_DEVICE(0x07ca, 0x2553), .driver_info = USB_QUIRK_NO_BOS },
-
-	/* UGREEN 35871 - BOS descriptor fetch hangs at SuperSpeed Plus */
-	{ USB_DEVICE(0x2b89, 0x5871), .driver_info = USB_QUIRK_NO_BOS },
-
 	/* Sony Xperia XZ1 Compact (lilac) smartphone in fastboot mode */
 	{ USB_DEVICE(0x0fce, 0x0dde), .driver_info = USB_QUIRK_NO_LPM },
 
@@ -574,6 +571,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 
 	{ USB_DEVICE(0x2386, 0x350e), .driver_info = USB_QUIRK_NO_LPM },
 
+	/* UGREEN 35871 - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x2b89, 0x5871), .driver_info = USB_QUIRK_NO_BOS },
+
 	/* APTIV AUTOMOTIVE HUB */
 	{ USB_DEVICE(0x2c48, 0x0132), .driver_info =
 			USB_QUIRK_SHORT_SET_ADDRESS_REQ_TIMEOUT },
-- 
2.53.0


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

* Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
  2026-02-04 14:25   ` A1RM4X
@ 2026-02-04 14:36     ` Greg KH
  2026-02-04 14:37     ` Greg KH
  1 sibling, 0 replies; 9+ messages in thread
From: Greg KH @ 2026-02-04 14:36 UTC (permalink / raw)
  To: A1RM4X
  Cc: A1RM4X, linux-usb, limiao, oneukum, huanglei, lijiayi,
	johannes.bruederl, linux-kernel

On Wed, Feb 04, 2026 at 09:25:18AM -0500, A1RM4X wrote:
> Hi,
> 
> Please find attached the new patch which fixes the structure of the commit.

Attached patches do not work :(

> Why? If the option is not being used, the speed limit will be limited
> to 5000M, which limits the capture capabilities of the device (4K30fps
> at 5000M versus the expected 4K60fps at 10000M).

Why does the device slow down like this?  Is it a bug in it?

> What happens in userspace?
> - without patch
> [ 5036.674972] usb 2-2: new SuperSpeed Plus Gen 2x1 USB device number
> 2 using xhci_hcd
> [ 5041.770595] usb 2-2: unable to get BOS descriptor or descriptor too short
> [ 5041.770605] usb 2-2: unable to read config index 0 descriptor/start: -19
> [ 5041.955592] usb 2-2: Device not responding to setup address.
> [ 5042.162588] usb 2-2: Device not responding to setup address.
> [ 5042.370246] usb 2-2: device not accepting address 3, error -71
> [ 5042.373859] usb usb2-port2: attempt power cycle
> [ 5043.691464] usb 2-2: new SuperSpeed USB device number 5 using xhci_hcd
> [ 5043.887185] usb 2-2: LPM exit latency is zeroed, disabling LPM.
> [ 5043.980556] usb 2-2: New USB device found, idVendor=2b89,
> idProduct=5871, bcdDevice= 0.00
> [ 5043.980561] usb 2-2: New USB device strings: Mfr=6, Product=7, SerialNumber=3
> [ 5043.980563] usb 2-2: Product: UGREEN 35871
> [ 5043.980564] usb 2-2: Manufacturer: UGREEN 35871
> [ 5043.980564] usb 2-2: SerialNumber: PRODUCT
> [ 5044.166844] hid-generic 0003:2B89:5871.0007: hiddev99,hidraw6: USB
> HID v1.11 Device [UGREEN 35871 UGREEN 35871] on
> usb-0000:0b:00.0-2/input4
> [ 5044.188946] videodev: Linux video capture interface: v2.00
> [ 5044.207601] uvcvideo 2-2:1.1: Unknown video format
> 30313050-0000-0010-8000-00aa00389b71
> [ 5044.207606] uvcvideo 2-2:1.0: Found UVC 1.00 device UGREEN 35871 (2b89:5871)
> [ 5044.242584] usbcore: registered new interface driver uvcvideo
> 
> /:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5p, 20000M/x2
>     |__ Port 002: Dev 005, If 0, Class=Video, Driver=uvcvideo, 5000M
>     |__ Port 002: Dev 005, If 1, Class=Video, Driver=uvcvideo, 5000M
>     |__ Port 002: Dev 005, If 2, Class=Audio, Driver=snd-usb-audio, 5000M
>     |__ Port 002: Dev 005, If 3, Class=Audio, Driver=snd-usb-audio, 5000M
>     |__ Port 002: Dev 005, If 4, Class=Human Interface Device,
> Driver=usbhid, 5000M
> 
> 
> - with patch
> [   51.913978] usb 6-1: new SuperSpeed Plus Gen 2x1 USB device number
> 3 using xhci_hcd
> [   52.181717] usb 6-1: New USB device found, idVendor=2b89,
> idProduct=5871, bcdDevice= 0.00
> [   52.181721] usb 6-1: New USB device strings: Mfr=6, Product=7, SerialNumber=3
> [   52.181724] usb 6-1: Product: UGREEN 35871
> [   52.181726] usb 6-1: Manufacturer: UGREEN 35871
> [   52.181728] usb 6-1: SerialNumber: PRODUCT
> [   52.284659] uvcvideo 6-1:1.1: Unknown video format
> 30313050-0000-0010-8000-00aa00389b71
> [   52.284666] uvcvideo 6-1:1.0: Found UVC 1.00 device UGREEN 35871 (2b89:5871)
> [   52.475086] hid-generic 0003:2B89:5871.000A: hiddev100,hidraw6: USB
> HID v1.11 Device [UGREEN 35871 UGREEN 35871] on
> usb-0000:0e:00.3-1/input4
> 
> /:  Bus 006.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M
>     |__ Port 001: Dev 003, If 0, Class=Video, Driver=uvcvideo, 10000M
>     |__ Port 001: Dev 003, If 1, Class=Video, Driver=uvcvideo, 10000M
>     |__ Port 001: Dev 003, If 2, Class=Audio, Driver=snd-usb-audio, 10000M
>     |__ Port 001: Dev 003, If 3, Class=Audio, Driver=snd-usb-audio, 10000M
>     |__ Port 001: Dev 003, If 4, Class=Human Interface Device,
> Driver=usbhid, 10000M
> 
> 
> If more debug tests are required, please let me know how to proceed.

If you run `lsusb -v` you will read the BOS values, and then look at the
kernel to see if it has issues after that.

> --------------------------------
> 
> Regarding the Signed‑off‑by line, I would like to use my public
> content‑creator alias rather than my personal identity. Could you
> advise how to do this while remaining compliant with the DCO?

Sorry, I can't do that as I do not know who this is.

greg k-h

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

* Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
  2026-02-04 14:25   ` A1RM4X
  2026-02-04 14:36     ` Greg KH
@ 2026-02-04 14:37     ` Greg KH
  2026-02-04 19:51       ` A1RM4X
  1 sibling, 1 reply; 9+ messages in thread
From: Greg KH @ 2026-02-04 14:37 UTC (permalink / raw)
  To: A1RM4X
  Cc: A1RM4X, linux-usb, limiao, oneukum, huanglei, lijiayi,
	johannes.bruederl, linux-kernel

On Wed, Feb 04, 2026 at 09:25:18AM -0500, A1RM4X wrote:
> Hi,
> 
> Please find attached the new patch which fixes the structure of the commit.

Also, you sent a patch on top of your previous patch which was not
accepted, and so this wouldn't even apply to our trees at all :(

Please always make a "clean" patch.

thanks,

greg k-h

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

* Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
  2026-02-04 14:37     ` Greg KH
@ 2026-02-04 19:51       ` A1RM4X
  2026-02-05  6:51         ` Greg KH
  0 siblings, 1 reply; 9+ messages in thread
From: A1RM4X @ 2026-02-04 19:51 UTC (permalink / raw)
  To: Greg KH
  Cc: A1RM4X, linux-usb, limiao, oneukum, huanglei, lijiayi,
	johannes.bruederl, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2624 bytes --]

I added a clean patch to this email.

I own the devices mentioned in the patch. For all 3 devices, the USB
port speed (10Gbps) is reached on Windows, they just negotiate 5Gbps
speed on Linux. After applying the patch, as mentioned earlier, they
reach the correct speed. I just did a 3 hours record on the Avermedia
on Linux and it works as expected with a patched kernel.

Here is an updated dmesg output after following your instructions on
the current kernel master:

[  701.425991] usb 2-2: new SuperSpeed Plus Gen 2x1 USB device number
2 using xhci_hcd
[  706.735379] usb 2-2: unable to get BOS descriptor or descriptor too short
[  706.735390] usb 2-2: unable to read config index 0 descriptor/start: -19
[  706.920395] usb 2-2: Device not responding to setup address.
[  707.127380] usb 2-2: Device not responding to setup address.
[  707.335050] usb 2-2: device not accepting address 3, error -71
[  707.338647] usb usb2-port2: attempt power cycle
[  708.656278] usb 2-2: new SuperSpeed USB device number 5 using xhci_hcd
[  708.859889] usb 2-2: LPM exit latency is zeroed, disabling LPM.
[  708.955893] usb 2-2: New USB device found, idVendor=2b89,
idProduct=5871, bcdDevice= 0.00
[  708.955895] usb 2-2: New USB device strings: Mfr=6, Product=7, SerialNumber=3
[  708.955896] usb 2-2: Product: UGREEN 35871
[  708.955897] usb 2-2: Manufacturer: UGREEN 35871
[  708.955897] usb 2-2: SerialNumber: PRODUCT
[  709.142354] hid-generic 0003:2B89:5871.0007: hiddev99,hidraw6: USB
HID v1.11 Device [UGREEN 35871 UGREEN 35871] on
usb-0000:0b:00.0-2/input4
[  709.165518] videodev: Linux video capture interface: v2.00
[  709.187290] uvcvideo 2-2:1.1: Unknown video format
30313050-0000-0010-8000-00aa00389b71
[  709.187297] uvcvideo 2-2:1.0: Found UVC 1.00 device UGREEN 35871 (2b89:5871)
[  709.224374] usbcore: registered new interface driver uvcvideo

Regarding the Signed‑off‑by line, if I can't sign it with my content
creator name, please sign it yourself. Whether I put my name on this
patch is not important, what is important is the kernel to function
properly with those devices.

Thanks again for helping,
A1RM4X

On Wed, Feb 4, 2026 at 9:38 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>
> On Wed, Feb 04, 2026 at 09:25:18AM -0500, A1RM4X wrote:
> > Hi,
> >
> > Please find attached the new patch which fixes the structure of the commit.
>
> Also, you sent a patch on top of your previous patch which was not
> accepted, and so this wouldn't even apply to our trees at all :(
>
> Please always make a "clean" patch.
>
> thanks,
>
> greg k-h
>

[-- Attachment #2: 0001-USB-add-QUIRK_NO_BOS-for-several-devices.patch --]
[-- Type: text/x-patch, Size: 2336 bytes --]

From 268058484b261abfbe5f47a0668c503570175d9f Mon Sep 17 00:00:00 2001
From: A1RM4X <dev@a1rm4x.com>
Date: Wed, 4 Feb 2026 14:26:48 -0500
Subject: [PATCH] USB: add QUIRK_NO_BOS for several devices
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* usb: add QUIRK_NO_BOS for several devices
  - Disables BOS handling on devices that break when the BOS
    descriptor is read (e.g. UGREEN 35871).  Prevents the kernel
    from falling back to a 5 Gbps link speed, unlocking the
    expected 10 Gbps/4K 60 fps mode.

* usb: core: reorder BOS‑quirk entries alphabetically
  - The three USB_QUIRK_NO_BOS entries are now placed in the
alphabetical order required by the file header.

Signed-off-by: A1RM4X <dev@a1rm4x.com>
---
 drivers/usb/core/quirks.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
index c4d85089d19b..f4c80063864f 100644
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -377,6 +377,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 	/* SanDisk Extreme 55AE */
 	{ USB_DEVICE(0x0781, 0x55ae), .driver_info = USB_QUIRK_NO_LPM },
 
+	/* Avermedia Live Gamer Ultra 2.1 (GC553G2) - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x07ca, 0x2553), .driver_info = USB_QUIRK_NO_BOS },
+
 	/* Realforce 87U Keyboard */
 	{ USB_DEVICE(0x0853, 0x011b), .driver_info = USB_QUIRK_NO_LPM },
 
@@ -437,6 +440,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 	{ USB_DEVICE(0x0b05, 0x17e0), .driver_info =
 			USB_QUIRK_IGNORE_REMOTE_WAKEUP },
 
+	/* ASUS TUF 4K PRO - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x0b05, 0x1ab9), .driver_info = USB_QUIRK_NO_BOS },
+
 	/* Realtek Semiconductor Corp. Mass Storage Device (Multicard Reader)*/
 	{ USB_DEVICE(0x0bda, 0x0151), .driver_info = USB_QUIRK_CONFIG_INTF_STRINGS },
 
@@ -565,6 +571,9 @@ static const struct usb_device_id usb_quirk_list[] = {
 
 	{ USB_DEVICE(0x2386, 0x350e), .driver_info = USB_QUIRK_NO_LPM },
 
+	/* UGREEN 35871 - BOS descriptor fetch hangs at SuperSpeed Plus */
+	{ USB_DEVICE(0x2b89, 0x5871), .driver_info = USB_QUIRK_NO_BOS },
+
 	/* APTIV AUTOMOTIVE HUB */
 	{ USB_DEVICE(0x2c48, 0x0132), .driver_info =
 			USB_QUIRK_SHORT_SET_ADDRESS_REQ_TIMEOUT },
-- 
2.53.0


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

* Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
  2026-02-04 19:51       ` A1RM4X
@ 2026-02-05  6:51         ` Greg KH
  2026-02-05 17:24           ` sharms
  0 siblings, 1 reply; 9+ messages in thread
From: Greg KH @ 2026-02-05  6:51 UTC (permalink / raw)
  To: A1RM4X
  Cc: linux-usb, limiao, oneukum, huanglei, lijiayi, johannes.bruederl,
	linux-kernel

On Wed, Feb 04, 2026 at 02:51:35PM -0500, A1RM4X wrote:
> I added a clean patch to this email.

Thanks, but again, we can not take attached patches :(

> I own the devices mentioned in the patch. For all 3 devices, the USB
> port speed (10Gbps) is reached on Windows, they just negotiate 5Gbps
> speed on Linux. After applying the patch, as mentioned earlier, they
> reach the correct speed. I just did a 3 hours record on the Avermedia
> on Linux and it works as expected with a patched kernel.

Ok, it looks like there is a very broken USB controller chip out there
in all of these devices.

> Here is an updated dmesg output after following your instructions on
> the current kernel master:
> 
> [  701.425991] usb 2-2: new SuperSpeed Plus Gen 2x1 USB device number
> 2 using xhci_hcd
> [  706.735379] usb 2-2: unable to get BOS descriptor or descriptor too short
> [  706.735390] usb 2-2: unable to read config index 0 descriptor/start: -19
> [  706.920395] usb 2-2: Device not responding to setup address.
> [  707.127380] usb 2-2: Device not responding to setup address.
> [  707.335050] usb 2-2: device not accepting address 3, error -71
> [  707.338647] usb usb2-port2: attempt power cycle
> [  708.656278] usb 2-2: new SuperSpeed USB device number 5 using xhci_hcd
> [  708.859889] usb 2-2: LPM exit latency is zeroed, disabling LPM.
> [  708.955893] usb 2-2: New USB device found, idVendor=2b89,
> idProduct=5871, bcdDevice= 0.00
> [  708.955895] usb 2-2: New USB device strings: Mfr=6, Product=7, SerialNumber=3
> [  708.955896] usb 2-2: Product: UGREEN 35871
> [  708.955897] usb 2-2: Manufacturer: UGREEN 35871
> [  708.955897] usb 2-2: SerialNumber: PRODUCT
> [  709.142354] hid-generic 0003:2B89:5871.0007: hiddev99,hidraw6: USB
> HID v1.11 Device [UGREEN 35871 UGREEN 35871] on
> usb-0000:0b:00.0-2/input4
> [  709.165518] videodev: Linux video capture interface: v2.00
> [  709.187290] uvcvideo 2-2:1.1: Unknown video format
> 30313050-0000-0010-8000-00aa00389b71
> [  709.187297] uvcvideo 2-2:1.0: Found UVC 1.00 device UGREEN 35871 (2b89:5871)
> [  709.224374] usbcore: registered new interface driver uvcvideo

Sorry, I wasn't specific.  What happens with your patch applied, and
THEN you run 'lsusb -v' on the system?  Does the devices reset then?

> Regarding the Signed‑off‑by line, if I can't sign it with my content
> creator name, please sign it yourself. Whether I put my name on this
> patch is not important, what is important is the kernel to function
> properly with those devices.

For obvious reasons, we can't sign off on other people's patches.  But
we can rewrite them, I'll go do that later today, and give you
reported-by credit.

Note, for the future, if you wish to contribute kernel patches, please
read the documentation section about how to write changelog text, as
what you provided we couldn't take as-is.

thanks,

greg k-h

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

* Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
  2026-02-05  6:51         ` Greg KH
@ 2026-02-05 17:24           ` sharms
  2026-02-05 17:33             ` Greg KH
  0 siblings, 1 reply; 9+ messages in thread
From: sharms @ 2026-02-05 17:24 UTC (permalink / raw)
  To: gregkh
  Cc: dev, linux-usb, linux-kernel, limiao, oneukum, huanglei, lijiayi,
	johannes.bruederl, Steve Harms

From: Steve Harms <sharms@snowfoundry.com>

On Thu, Feb 05, 2026 at 07:51:17AM +0100, Greg KH wrote:
> Ok, it looks like there is a very broken USB controller chip out there
> in all of these devices.

Hey Greg,

I think this references the same issues as in
https://lore.kernel.org/linux-usb/2025122837-creamlike-motivator-8dcb@gregkh/

There are a few of us who need 10G support for video capture with
these devices.

Thanks,
Steve

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

* Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
  2026-02-05 17:24           ` sharms
@ 2026-02-05 17:33             ` Greg KH
  0 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2026-02-05 17:33 UTC (permalink / raw)
  To: sharms
  Cc: dev, linux-usb, linux-kernel, limiao, oneukum, huanglei, lijiayi,
	johannes.bruederl

On Thu, Feb 05, 2026 at 10:24:32AM -0700, sharms wrote:
> From: Steve Harms <sharms@snowfoundry.com>
> 
> On Thu, Feb 05, 2026 at 07:51:17AM +0100, Greg KH wrote:
> > Ok, it looks like there is a very broken USB controller chip out there
> > in all of these devices.
> 
> Hey Greg,
> 
> I think this references the same issues as in
> https://lore.kernel.org/linux-usb/2025122837-creamlike-motivator-8dcb@gregkh/

Yes.

> There are a few of us who need 10G support for video capture with
> these devices.

Understood, and I guess they are all using the same chip in the device?
I have the one listed at the link above for testing, but it would be
really good if someone could figure out why Windows doesn't have this
problem and only Linux does...

thanks,

greg k-h

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

end of thread, other threads:[~2026-02-05 17:33 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-04  3:29 [PATCH] usb: add QUIRK_NO_BOS for several devices A1RM4X
2026-02-04  5:15 ` Greg KH
2026-02-04 14:25   ` A1RM4X
2026-02-04 14:36     ` Greg KH
2026-02-04 14:37     ` Greg KH
2026-02-04 19:51       ` A1RM4X
2026-02-05  6:51         ` Greg KH
2026-02-05 17:24           ` sharms
2026-02-05 17:33             ` Greg KH

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