Public bug reported:
# USB regression: high-speed hub behind Thunderbolt dock misdetected as
low-speed, fails to enumerate (7.0.0-28 OK → 7.0.0-30 broken)
## Summary
A USB 2.0 high-speed hub (integrated into a USB keyboard) attached to a ThinkPad
Thunderbolt 3 dock enumerates correctly on `7.0.0-28-generic` and fails to
enumerate at
all on `7.0.0-30-generic`. On the failing kernel the device is detected as
**low-speed**,
which is impossible for the hardware in question (it is a high-speed hub, and
it is
correctly detected as high-speed on the same kernel when attached to an xHCI
root port).
Every other dock device (USB audio, microphone, mouse, mass storage, Ethernet,
DP/monitors) works normally on both kernels. No hardware or cabling changed
between the
working and failing kernels.
**Hub cascade depth is NOT the variable.** The dock's USB audio device sits at
`3-2.1.1.4` — three hubs deep, exactly the same depth as the keyboard at
`3-2.1.4.4` —
and works fine on both kernels. What distinguishes the failing device is
**speed**: every
working device attached to this dock is full-speed (12 Mbps), and the keyboard's
integrated hub is the only high-speed (480 Mbps) device being newly enumerated
on a dock
downstream port. The evidence points at high-speed detection (chirp handshake)
at a dock
downstream port, not at cascade depth.
Workaround found: setting per-port `quirks=3` on the dock port makes it
enumerate again.
## Affected versions
| Kernel | Result |
|---|---|
| `7.0.0-28.28~24.04.1-generic` (upstream base 7.0.12) | **works** |
| `7.0.0-30.30~24.04.1-generic` (upstream base 7.0.12) | **fails** |
Both builds report the same upstream base version (`7.0.12`), so the delta
appears to be
in the Ubuntu patch set / config between `-28.28` and `-30.30` rather than a
stable rebase.
Ubuntu 24.04 LTS, HWE kernel (`linux-image-generic-hwe-24.04`).
## Hardware
- System76 Bonobo WS (`bonw16`), BIOS 1.07.11a (2026-03-09)
- Lenovo ThinkPad Thunderbolt 3 Dock (`17ef:3082`), on Intel Barlow Ridge TB
controller
- Dock internal USB 2.0 hub cascade: `17ef:3080` → `17ef:3080` → `17ef:3081`
- Affected device: keyboard presenting an integrated hub
- integrated hub: `1a40:0801` "USB 2.0 Hub", 4 ports, high-speed
- keyboard behind it: `258a:0059` "SINO WEALTH Bluetooth Keyboard"
(USB-attached), full-speed
Topology (`lsusb -t`, on the working configuration):
```
/: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 480M
|__ Port 002: Dev 002, If 0, Class=Hub, Driver=hub/5p, 480M
17ef:3080
|__ Port 001: Dev 003, If 0, Class=Hub, Driver=hub/5p, 480M
17ef:3080
|__ Port 004: Dev 048, If 0, Class=Hub, Driver=hub/4p, 480M
1a40:0801 (in keyboard)
|__ Port 004: Dev 049, If 0, Class=HID, Driver=usbhid, 12M
258a:0059
|__ Port 004: Dev 049, If 1, Class=HID, Driver=usbhid, 12M
```
## Working behaviour — 7.0.0-28, port `3-2.4`
Normal progression: probed full-speed, then correctly re-detected as
high-speed, hub binds,
keyboard enumerates behind it.
```
usb 3-2.4: new full-speed USB device number 7 using xhci_hcd
usb 3-2.4: new full-speed USB device number 8 using xhci_hcd
usb 3-2.4: new high-speed USB device number 12 using xhci_hcd
usb 3-2.4: New USB device found, idVendor=1a40, idProduct=0801, bcdDevice= 1.00
usb 3-2.4: Product: USB 2.0 Hub
hub 3-2.4:1.0: USB hub found
hub 3-2.4:1.0: 4 ports detected
usb 3-2.4.4: new full-speed USB device number 14 using xhci_hcd
usb 3-2.4.4: New USB device found, idVendor=258a, idProduct=0059,
bcdDevice=10.27
usb 3-2.4.4: Product: Bluetooth Keyboard
usb 3-2.4.4: Manufacturer: SINO WEALTH
input: SINO WEALTH Bluetooth Keyboard as /devices/.../3-2.4/3-2.4.4/...
```
## Failing behaviour — 7.0.0-30, SAME port `3-2.4`
Detected as **low-speed** (wrong), descriptor read stalls, never
enumerates:
```
usb 3-2.4: new low-speed USB device number 11 using xhci_hcd
usb 3-2.4: device descriptor read/64, error -32
usb 3-2.4: device descriptor read/64, error -32
usb 3-2.4: new low-speed USB device number 12 using xhci_hcd
usb 3-2.4: device descriptor read/64, error -32
usb 3-2.4: device descriptor read/64, error -32
usb 3-2-port4: attempt power cycle
```
The kernel retries indefinitely, every few minutes, never succeeding.
`/sys/bus/usb/devices/3-2.4`
is never created. Also observed across attempts on the failing kernel:
```
usb 3-2.4: Device not responding to setup address.
usb 3-2.4: device not accepting address 24, error -71
usb 3-2.4: WARN: invalid context state for evaluate context command.
usb 3-2-port4: connect-debounce failed
usb 3-2-port4: unable to enumerate USB device
usb 3-2.1.4-port4: cannot reset (err = -32)
```
Notably the detected speed is **not stable** across retries on the failing
kernel — the
same device is reported as `low-speed` on most attempts and `full-speed` on
others:
```
09:29:40.063 new low-speed USB device number 23 → error -32
09:29:48.556 new full-speed USB device number 24 → error -71
09:29:49.605 new low-speed USB device number 25 → error -71
```
`over_current_count` is 0 on the port throughout, so this is not a
power/overcurrent issue.
## Evidence this is not hardware
1. Same cable, same dock, same physical port throughout. Nothing was replugged
between the
working and failing kernels.
2. On the **failing kernel**, the same keyboard attached to an xHCI **root
port** (`1-1`)
enumerates perfectly, and its integrated hub is correctly detected as
high-speed:
```
usb 1-1: new high-speed USB device number 8 using xhci_hcd
usb 1-1: Product: USB 2.0 Hub
usb 1-1.4: new full-speed USB device number 9 using xhci_hcd
usb 1-1.4: Product: Bluetooth Keyboard Manufacturer: SINO WEALTH
```
So the device itself is fine on 7.0.0-30; the failure requires it to be
attached to a
dock downstream port rather than a root port.
3. Reproduces identically on two different dock ports (`3-2.4` and `3-2.1.4`).
4. Survives a full cold shutdown with the dock unplugged from power.
5. All other dock devices are unaffected on both kernels.
## Workaround
Per-port quirks on the dock port the device attaches to:
```sh
echo 3 > /sys/bus/usb/devices/3-2.1/3-2.1:1.0/3-2.1-port4/quirks
# then force re-enumeration
echo 1 > /sys/bus/usb/devices/3-2.1/3-2.1:1.0/3-2.1-port4/disable; sleep 3
echo 0 > /sys/bus/usb/devices/3-2.1/3-2.1:1.0/3-2.1-port4/disable
```
With `quirks=3` the integrated hub comes up correctly at 480 Mbps and the
keyboard
enumerates behind it. Results per value:
| port `quirks` | integrated hub | keyboard |
|---|---|---|
| 0 (default) | never enumerates | absent |
| 1 | never enumerates | absent |
| 2 | enumerates but at **12 Mbps** (degraded) | fails, `error -71` |
| **3** | enumerates at **480 Mbps** | **works** |
Additional settings that were also in effect when it succeeded (not minimised,
may not all
be required): `usbcore.initial_descriptor_timeout=60000` (default 5000),
`usbcore.old_scheme_first=Y`, and the USB3 peer port of the same receptacle
(`4-2.1-port4`) disabled.
The global `usbcore.old_scheme_first=1` boot parameter **alone** does not fix
it — it only
moves the failure from the descriptor read to the set-address step:
```
usb 3-2.4: Device not responding to setup address.
usb 3-2.4: device not accepting address 11, error -71
```
## Things that did NOT help
- port power cycle via `<port>/disable`
- hub driver unbind/rebind on the dock hub interface
- full cold shutdown with the dock unplugged
- disabling autosuspend on the dock hubs (`power/control=on`, delay 0 → on)
- `usbcore.old_scheme_first=1` globally
## Notes for triage
- `usbmon` cannot observe this failure: on xHCI the failing step (`Set
Address`) is a host
controller command rather than a URB, so a 25 s capture on the affected bus
contains no
traffic to address 0 or to any of the transient device numbers.
- The regression suspicion is in USB hub port speed detection /
reset-and-debounce timing
for devices behind multiple cascaded USB 2.0 hubs (transaction translators).
- Since both builds share upstream base 7.0.12, `git log` between Ubuntu
`-28.28` and
`-30.30` restricted to `drivers/usb/core/hub.c`, `drivers/usb/host/xhci*`
would be the
place to start.
ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: linux-image-7.0.0-30-generic 7.0.0-30.30~24.04.1
ProcVersionSignature: Ubuntu 7.0.0-30.30~24.04.1-generic 7.0.12
Uname: Linux 7.0.0-30-generic x86_64
ApportVersion: 2.28.3-0ubuntu0.1
Architecture: amd64
CRDA: N/A
CasperMD5CheckResult: unknown
CurrentDesktop: KDE
Date: Thu Aug 27 10:10:16 2026
InstallationDate: Installed on 2026-06-13 (75 days ago)
InstallationMedia: Kubuntu 24.04.4 LTS "Noble Numbat" - Release amd64 (20260210)
MachineType: System76 Bonobo WS
ProcFB:
0 nvidia-drmdrmfb
1 i915drmfb
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-7.0.0-30-generic
root=UUID=af0d5ece-74a6-48fe-b04f-195b13a44754 ro quiet
cryptdevice=UUID=b5c7f091-35dd-4d81-a7ac-0dbe3a68adbb:luks-b5c7f091-35dd-4d81-a7ac-0dbe3a68adbb
root=/dev/mapper/luks-b5c7f091-35dd-4d81-a7ac-0dbe3a68adbb splash
thunderbolt.host_reset=0 usbcore.old_scheme_first=1 vt.handoff=7
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No
PulseAudio daemon running, or not running as session daemon.
RelatedPackageVersions:
linux-restricted-modules-7.0.0-30-generic N/A
linux-backports-modules-7.0.0-30-generic N/A
linux-firmware 20240318.git3b128b60-0ubuntu2.29
SourcePackage: linux-hwe-7.0
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 03/09/2026
dmi.bios.release: 7.11
dmi.bios.vendor: INSYDE Corp.
dmi.bios.version: 1.07.11a
dmi.board.asset.tag: Tag 12345
dmi.board.name: Bonobo WS
dmi.board.vendor: System76
dmi.board.version: bonw16
dmi.chassis.asset.tag: No Asset Tag
dmi.chassis.type: 10
dmi.chassis.vendor: System76
dmi.chassis.version: bonw16
dmi.ec.firmware.release: 7.3
dmi.modalias:
dmi:bvnINSYDECorp.:bvr1.07.11a:bd03/09/2026:br7.11:efr7.3:svnSystem76:pnBonoboWS:pvrbonw16:rvnSystem76:rnBonoboWS:rvrbonw16:cvnSystem76:ct10:cvrbonw16:skuNotApplicable:pfaNotApplicable:
dmi.product.family: Not Applicable
dmi.product.name: Bonobo WS
dmi.product.sku: Not Applicable
dmi.product.version: bonw16
dmi.sys.vendor: System76
modified.conffile..etc.default.apport:
# set this to 0 to disable apport, or to 1 to enable it
# you can temporarily override this with
# sudo service apport start force_start=1
enabled=0
mtime.conffile..etc.default.apport: 2026-07-08T18:40:31.277994
** Affects: linux-hwe-7.0 (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug noble regression-update
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2165344
Title:
USB keyboard behind Thunderbolt dock stops enumerating on 7.0.0-30
(worked on 7.0.0-28) - internal hub misdetected as low-speed
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-hwe-7.0/+bug/2165344/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs