USB 2.0 hub (Terminus Technology 1a40:0101) fails to enumerate on kernel 7.x via ehci-pci — works fine on kernel 6.x

Environment:
Fedora 44 KDE Plasma
Motherboard: USB 2.0 only (no USB 3.0 ports)
Kernel affected: 7.2.4-200.fc44.x86_64
Kernel working fine: 6.19.10-300.fc44.x86_64

Description:
A USB 2.0 hub (Terminus Technology, VID:PID 1a40:0101) is detected by the system, but devices connected through it (USB audio device, Wi-Fi adapter) fail to enumerate and are unusable. The hub itself shows up in lsusb, but data communication with downstream devices fails.

dmesg output at time of failure:

1-1.1: Product: USB2.0 HUB
1-1.1:1.0: USB hub found
1-1.1:1.0: 4 ports detected
1-1.1.1: new full-speed USB device number 22 using ehci-pci
1-1.1.1: device descriptor read/64, error -32
1-1.1.1: device descriptor read/64, error -32
1-1.1.1: new full-speed USB device number 23 using ehci-pci
1-1.1.1: device descriptor read/64, error -32
1-1.1.1: device descriptor read/64, error -32
1-1.1-port1: attempt power cycle
1-1.1.1: new full-speed USB device number 24 using ehci-pci
1-1.1.1: device not accepting address 24, error -32
1-1.1.1: new full-speed USB device number 25 using ehci-pci
1-1.1.1: device not accepting address 25, error -32
1-1.1-port1: unable to enumerate USB device

Troubleshooting already performed:

  • Booting the same hardware/hub on kernel 6.x — works with no issues at all.
  • Tried usbcore.old_scheme_first=1 kernel parameter alone — no change, same error pattern persists.
  • Tried usbcore.old_scheme_first=1 combined with a reduced usbcore.initial_descriptor_timeout=300 — did not help either.
  • Checked BIOS settings: EHCI Hand-off toggled from Enabled to Disabled — no change, same failure. Reverted to original (Enabled) setting, which matches the working configuration on kernel 6.19.10-300.fc44.x86_64
  • No relevant errors appear in journalctl -k under normal boot; errors only surface with dmesg -w live monitoring during hub reconnect/enumeration attempts.

Expected behavior:
Hub and downstream devices should enumerate and function as they do on kernel 6.x.

Additional notes:
This looks like a regression somewhere in the USB core/EHCI enumeration path between kernel 6.19.10-300.fc44.x86_64 and 7.2.4-200.fc44.x86_64, specifically affecting full-speed devices behind a USB 2.0 hub on ehci-pci controllers.

This report was made by Claude AI. (sorry)

I would suspect power management changes. Newer kernels expect power management of devices to match specs and some devices don’t seem to implement specs correctly.

You should report to the linux kernel bugtracker if you want this to be changed.

On 7.2.4, disable the USB autosuspend globally

sudo grubby --update-kernel=ALL --args="usbcore.autosuspend=-1"

Reboot and then test the hub.

Then check

cat /sys/module/usbcore/parameters/autosuspend

If the hub is suddenly working, then it might be that power management is involved.

But if you get the same then remove the kernel parameter

sudo grubby --update-kernel=ALL --remove-args="usbcore.autosuspend=-1"

Did not work. Already tried.

Replace the HUB with a new one?

I like the Anker hubs, not seen any issues with them

There have been efforts to reduce device-dependent code.https://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20181205094116.23265-3-kai.heng.feng@canonical.com/ had quirks entry:

/* Terminus Technology Inc. Hub */
{ USB_DEVICE(0x1a40, 0x0101), .driver_info = USB_QUIRK_HUB_SLOW_RESET },

but I don’t find that in Fedora 7.2 kernels.

Good idea but i prefer to save money

Sadly, looks like i need that, if there a chance they will add something to fix that?

Maybe yes. It would probably be worth reporting this upstream to kernel developers..

y mean bugzilla redhat? i did it right after posting

Better to bug report to the linux kernel. I doubt that the Fedora ticket will lead to a change.

Also worth reporting to: https://www.terminus.com.tw/en/contact.html.

i doubt they will change something in their chips.

i guess im gonna save some money for a new hub

i’m not quite sure if this is a problem with the entire kernel too,
as @gnwiii said:

There have been efforts to reduce device-dependent code.https://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20181205094116.23265-3-kai.heng.feng@canonical.com/ had quirks entry:

/* Terminus Technology Inc. Hub */
{ USB_DEVICE(0x1a40, 0x0101), .driver_info = USB_QUIRK_HUB_SLOW_RESET },

but I don’t find that in Fedora 7.2 kernels.

Okay im just gonna use not fedora kernel