* [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