USB 3 internal bus fails to enumerate

On my Dell XPS 9370 laptop, I recently started to have issues with one of the USB buses. It’s the internal one, namely bus 1-1, which causes read/64 -71 errors and fails to enumerate. This causes frequent removal and adding of the bus. I only noticed this since my bluetooth mouse started lagging (the BT adapter is connected to the bus) - whenever I stop using the mouse for 1-2 seconds and try to use it again, the enumeration error occurs. Here is a dmesg trace:

 
 1807.113252] usb 1-1: new high-speed USB device number 8 using xhci_hcd
 1807.275105] usb 1-1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=49.66 
 1807.275107] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0  1807.275109] usb 1-1: Product: USB2.0 Hub 
 1807.275110] usb 1-1: Manufacturer: GenesysLogic 
 1807.276744] hub 1-1:1.0: USB hub found 
 1807.278368] hub 1-1:1.0: 4 ports detected 
 1807.585238] usb 1-1.3: new full-speed USB device number 9 using xhci_hcd 
 1807.691409] usb 1-1.3: config 1 has no interfaces? 
 1807.693106] usb 1-1.3: New USB device found, idVendor=0835, idProduct=2a01, bcdDevice= 1.46 
 1807.693110] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
 1807.693112] usb 1-1.3: Product: BILLBOARD DEVICE 
 1807.693114] usb 1-1.3: Manufacturer: BILLBOARD CLASS 
 1807.693115] usb 1-1.3: SerialNumber: 7B0E400000000000E75B3B4F00000000 
 1982.814186] usb 1-1: USB disconnect, device number 8 
 1982.814188] usb 1-1.3: USB disconnect, device number 9 
 1983.126807] usb 1-1: new high-speed USB device number 10 using xhci_hcd 
 1983.291710] usb 1-1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=49.66 
 1983.291715] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 
 1983.291719] usb 1-1: Product: USB2.0 Hub 
 1983.291721] usb 1-1: Manufacturer: GenesysLogic 
 1983.293443] hub 1-1:1.0: USB hub found 
 1983.295049] hub 1-1:1.0: 4 ports detected 
 1983.598994] usb 1-1.3: new full-speed USB device number 11 using xhci_hcd 
 1983.706064] usb 1-1.3: config 1 has no interfaces? 
 1983.707964] usb 1-1.3: New USB device found, idVendor=0835, idProduct=2a01, bcdDevice= 1.46 
 1983.707969] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
 1983.707973] usb 1-1.3: Product: BILLBOARD DEVICE 
 1983.707976] usb 1-1.3: Manufacturer: BILLBOARD CLASS 
 1983.707979] usb 1-1.3: SerialNumber: 7B0E400000000000E75B3B4F00000000 
 1988.162522] usb 1-1: USB disconnect, device number 10 
 1988.162530] usb 1-1.3: USB disconnect, device number 11 
 1988.962777] usb 1-1: new full-speed USB device number 12 using xhci_hcd 
 1989.094763] usb 1-1: device descriptor read/64, error -71 
 1989.330750] usb 1-1: device descriptor read/64, error -71 
 1989.570725] usb 1-1: new full-speed USB device number 13 using xhci_hcd 
 1989.702740] usb 1-1: device descriptor read/64, error -71 
 1989.938801] usb 1-1: device descriptor read/64, error -71 
 1990.046811] usb usb1-port1: attempt power cycle 
 1990.706914] usb 1-1: new full-speed USB device number 14 using xhci_hcd 
 1990.707107] usb 1-1: Device not responding to setup address. 
 1990.914941] usb 1-1: Device not responding to setup address. 
 1991.122708] usb 1-1: device not accepting address 14, error -71 
 1991.250750] usb 1-1: new full-speed USB device number 15 using xhci_hcd 
 1991.250946] usb 1-1: Device not responding to setup address. 
 1991.458942] usb 1-1: Device not responding to setup address. 
 1991.666687] usb 1-1: device not accepting address 15, error -71 
 1991.666857] usb usb1-port1: unable to enumerate USB device 
 2012.354426] usb 1-1: new full-speed USB device number 16 using xhci_hcd 
 2012.482662] usb 1-1: device descriptor read/64, error -71 
 2012.726427] usb 1-1: device descriptor read/64, error -71 
 2012.962622] usb 1-1: new full-speed USB device number 17 using xhci_hcd 
 2013.090518] usb 1-1: device descriptor read/64, error -71 
 2013.326527] usb 1-1: device descriptor read/64, error -71 
 2013.434598] usb usb1-port1: attempt power cycle 
 2014.094444] usb 1-1: new full-speed USB device number 18 using xhci_hcd 
 2014.094637] usb 1-1: Device not responding to setup address. 
 2014.302536] usb 1-1: Device not responding to setup address. 
 2014.510526] usb 1-1: device not accepting address 18, error -71 
 2014.638532] usb 1-1: new full-speed USB device number 19 using xhci_hcd 
 2014.638722] usb 1-1: Device not responding to setup address. 
 2014.846560] usb 1-1: Device not responding to setup address. 
 2015.054425] usb 1-1: device not accepting address 19, error -71 
 2015.054562] usb usb1-port1: unable to enumerate USB device 

lsusb -t gives

 
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M
     |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
         |__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
 /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
     |__ Port 5: Dev 6, If 3, Class=Video, Driver=uvcvideo, 480M
     |__ Port 5: Dev 6, If 1, Class=Video, Driver=uvcvideo, 480M
     |__ Port 5: Dev 6, If 2, Class=Video, Driver=uvcvideo, 480M
     |__ Port 5: Dev 6, If 0, Class=Video, Driver=uvcvideo, 480M
     |__ Port 7: Dev 7, If 0, Class=Wireless, Driver=btusb, 12M
     |__ Port 7: Dev 7, If 1, Class=Wireless, Driver=btusb, 12M

If I continuously use the bus, e.g. by moving the mouse all the time or turning on my webcam (which is also connected to the bus), everything works fine. I’ve searched the web, as the read / fail-to-enumerate problems are not uncommon, but didn’t found something that quite matched my need. I also tried an older kernel (currently using 5.7.7, switched back to 5.7.5), the problem persists. What I also tried (based on this post; https://urukrama.wordpress.com/2009/01/27/usb-drive-not-recognised-error-71/) was putting

 options usbcore use_both_schemes=y 

to /etc/modprobe.d/99-local.conf to no avail. Does anyone have an idea what could be wrong here? I’d like to believe that it is a software bug, maybe in usbcore, but can’t rule out the possibility that the bus may have some hardware issues…

Does disabling USB power management help at all? This can be done using the “usbcore.autosuspend=-1” kernel boot option.

That may have done the trick. After reboot, I did not (yet) get the above error messages. There is also no lag with the mouse anymore. I’ll test it some more, just to be sure. My initial though was also that tlp was the culprit (had some issues with it in the past), but disabling it (or disabling USB suspend in tlp) did not help.

[EDIT] Nope, errors are back. The mouse stopped lagging, though, which is definetely an improvement. I can live with that. It may just be some unused port (or somthing I don’t use, at least).

You have a USB2.0 (GenesysLogic) hub in the mix? Is this an external hub?

Apparently, there is one USB 2.0 Hub on the internal bus:


    2.827743] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.07
    2.827745] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    2.827747] usb usb1: Product: xHCI Host Controller
    2.827748] usb usb1: Manufacturer: Linux 5.7.7-1-default xhci-hcd
    2.827748] usb usb1: SerialNumber: 0000:00:14.0
    2.830045] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.07
    2.830045] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    2.830046] usb usb2: Product: xHCI Host Controller
    2.830046] usb usb2: Manufacturer: Linux 5.7.7-1-default xhci-hcd
    2.830047] usb usb2: SerialNumber: 0000:00:14.0
    2.830403] usb: port power management may be unreliable
    3.168363] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
    3.193460] usb 2-1: New USB device found, idVendor=05e3, idProduct=0617, bcdDevice=49.66
    3.193461] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    3.193462] usb 2-1: Product: USB3.0 Hub
    3.193463] usb 2-1: Manufacturer: GenesysLogic
**    3.320211] usb 1-1: new high-speed USB device number 2 using xhci_hcd
    3.490355] usb 1-1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice=49.66
    3.490356] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    3.490357] usb 1-1: Product: USB2.0 Hub
    3.490357] usb 1-1: Manufacturer: GenesysLogic**

I’m not sure what this actually is, though. lsusb -s 1:1 -v gives


Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            5.07
  iManufacturer           3 
  iProduct                2 
  iSerial                 1 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0019
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              1

Very interesting. I do have one external Hub, a Dell travel adapter for ethernet, VGA, HDMI and one Type-A USB port. When I connect it (its connected to bus 2), I get more of the failed to enumerate errors on bus 1-1. Does plugging in / removing USB devices cause usbcore to scan other buses / devices as well?

After some reboots, the error messages are not popping up anymore - bluetooth mouse works fine, which is enough for me. For now, I have the feeling that the errors are generated when usbcore tries to scan the bus (apparently some device is making trouble there). Suppressing autosuspend seems to disable frequent scanning, thus the error is “hidden”. This is fine for me, maybe it is solved by the next kernel / usbcore update. Thanks for the help!

Thanks for the update. Let’s back away slowly! :cool: