Re: [PATCH] usb: add QUIRK_NO_BOS for several devices
From: A1RM4X
Date: Wed Feb 04 2026 - 15:34:58 EST
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@xxxxxxxxxxxxxxxxxxx> 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
>
From 268058484b261abfbe5f47a0668c503570175d9f Mon Sep 17 00:00:00 2001
From: A1RM4X <dev@xxxxxxxxxx>
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@xxxxxxxxxx>
---
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