Usb 3.0 controller cashed when a device is inserted on another USB 3.0 port

Hello Expert

When I’m using a USB 3.0 camera, if I plug a device into another USB 3.0 port, it will cause camera data to stop.There was no printing in the dmesg log when reinserted camera, and there was no response to the insertion of other USB3.0 devices.The insertion of USB2.0 device can be recognized normally.

I have repeated this problem many times, sometimes there is no printing in the log, sometimes different error messages are printed:

[  569.632734] usb 1-2.1: new full-speed USB device number 4 using tegra-xusb
    [  569.654334] usb 1-2.1: New USB device found, idVendor=23d0, idProduct=0c80
    [  569.654341] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [  569.654345] usb 1-2.1: Product: HH400
    [  569.654348] usb 1-2.1: Manufacturer: Honeywell
    [  569.654352] usb 1-2.1: SerialNumber: 20154B45E1
    [  569.662829] input: Honeywell HH400 as /devices/70090000.xusb/usb1/1-2/1-2.1/1-2.1:1.0/0003:23D0:0C80.0007/input/input5
    [  569.721454] hid-generic 0003:23D0:0C80.0007: input,hidraw4: USB HID v1.01 Keyboard [Honeywell HH400] on usb-70090000.xusb-2.1/input0
    [  569.769183] tegra-xusb 70090000.xusb: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
    [  569.790633] tegra-xusb 70090000.xusb: URB transfer length is wrong, xHC issue? req. len = 10, act. len = 429496726

180.301486] usb 1-2.1: new full-speed USB device number 13 using tegra-xusb
[  180.322868] usb 1-2.1: New USB device found, idVendor=23d0, idProduct=0c80
[  180.322874] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  180.322878] usb 1-2.1: Product: HH400
[  180.322881] usb 1-2.1: Manufacturer: Honeywell
[  180.322884] usb 1-2.1: SerialNumber: 20154B45E1
[  180.331534] input: Honeywell HH400 as /devices/70090000.xusb/usb1/1-2/1-2.1/1-2.1:1.0/0003:23D0:0C80.0007/input/input5
[  180.390313] hid-generic 0003:23D0:0C80.0007: input,hidraw4: USB HID v1.01 Keyboard [Honeywell HH400] on usb-70090000.xusb-2.1/input0
[  180.440422] tegra-xusb 70090000.xusb: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
[  180.462229] tegra-xusb 70090000.xusb: URB transfer length is wrong, xHC issue? req. len = 10, act. len = 4294967266
[  183.404524] tegra-xusb 70090000.xusb: WARN Event TRB for slot 4 ep 2 with no TDs queued?

[  108.433385] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[  108.581288] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[  108.601330] usb 1-2: usb_suspend_both: status 0
[  116.368806] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[  116.660749] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[  116.680766] usb 1-2: usb_suspend_both: status 0
[  117.608722] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[  117.816684] usb 1-2.1: new full-speed USB device number 8 using tegra-xusb
[  117.837983] usb 1-2.1: New USB device found, idVendor=23d0, idProduct=0c80
[  117.837989] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  117.837993] usb 1-2.1: Product: HH400
[  117.837997] usb 1-2.1: Manufacturer: Honeywell
[  117.838000] usb 1-2.1: SerialNumber: 20154B45E1
[  117.846682] input: Honeywell HH400 as /devices/70090000.xusb/usb1/1-2/1-2.1/1-2.1:1.0/0003:23D0:0C80.0007/input/input5
[  117.865575] tegra-xusb 70090000.xusb: WARN Event TRB for slot 4 ep 6 with no TDs queued?
[  117.905496] hid-generic 0003:23D0:0C80.0007: input,hidraw4: USB HID v1.01 Keyboard [Honeywell HH400] on usb-70090000.xusb-2.1/input0
[  118.201121] usb 2-1.2: reset SuperSpeed USB device number 3 using tegra-xusb
[  118.221631] usb 2-1.2: LPM exit latency is zeroed, disabling LPM.

And this is case of none error log:

[   59.356095] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[   59.504344] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[   59.524358] usb 1-2: usb_suspend_both: status 0
[   70.273990] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[   70.421905] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1
[   70.441880] usb 1-2: usb_suspend_both: status 0
[   71.513285] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[   71.721155] usb 1-2.1: new full-speed USB device number 8 using tegra-xusb
[   71.742461] usb 1-2.1: New USB device found, idVendor=23d0, idProduct=0c80
[   71.742468] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   71.742472] usb 1-2.1: Product: HH400
[   71.742476] usb 1-2.1: Manufacturer: Honeywell
[   71.742479] usb 1-2.1: SerialNumber: 20079B3795
[   71.750810] input: Honeywell HH400 as /devices/70090000.xusb/usb1/1-2/1-2.1/1-2.1:1.0/0003:23D0:0C80.0007/input/input5
[   71.810153] hid-generic 0003:23D0:0C80.0007: input,hidraw4: USB HID v1.01 Keyboard [Honeywell HH400] on usb-70090000.xusb-2.1/input0

lsusb -v log when crashed:

 el-x@gelx-desktop:~$ lsusb -vvv 

Bus 002 Device 004: ID 1711:2010 Leica Microsystems 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0         9
  idVendor           0x1711 Leica Microsystems
  idProduct          0x2010 
  bcdDevice            0.00
  iManufacturer           1 (error)
  iProduct                2 (error)
  iSerial                 3 (error)
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          116
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              224mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         3
  bFunctionClass        239 Miscellaneous Device
  bFunctionSubClass       5 USB3 Vision
  bFunctionProtocol       0 
  iFunction               4 (error)
Interface Descriptor:
  bLength                 9
  bDescriptorType         4
  bInterfaceNumber        0
  bAlternateSetting       0
  bNumEndpoints           2
  bInterfaceClass       239 Miscellaneous Device
  bInterfaceSubClass      5 USB3 Vision
  bInterfaceProtocol      0 
  iInterface              5 (error)
  ** UNRECOGNIZED:  14 24 01 00 00 01 00 00 00 01 00 08 01 02 09 0a 0b 03 0c 0c
  Endpoint Descriptor:
    bLength                 7
    bDescriptorType         5
    bEndpointAddress     0x81  EP 1 IN
    bmAttributes            2
      Transfer Type            Bulk
      Synch Type               None
      Usage Type               Data
    wMaxPacketSize     0x0400  1x 1024 bytes
    bInterval               0
    bMaxBurst               0
  Endpoint Descriptor:
    bLength                 7
    bDescriptorType         5
    bEndpointAddress     0x01  EP 1 OUT
    bmAttributes            2
      Transfer Type            Bulk
      Synch Type               None
      Usage Type               Data
    wMaxPacketSize     0x0400  1x 1024 bytes
    bInterval               0
    bMaxBurst               0
Interface Descriptor:
  bLength                 9
  bDescriptorType         4
  bInterfaceNumber        1
  bAlternateSetting       0
  bNumEndpoints           1
  bInterfaceClass       239 Miscellaneous Device
  bInterfaceSubClass      5 USB3 Vision
  bInterfaceProtocol      1 
  iInterface              6 (error)
  Endpoint Descriptor:
    bLength                 7
    bDescriptorType         5
    bEndpointAddress     0x82  EP 2 IN
    bmAttributes            2
      Transfer Type            Bulk
      Synch Type               None
      Usage Type               Data
    wMaxPacketSize     0x0400  1x 1024 bytes
    bInterval               0
    bMaxBurst               0
Interface Descriptor:
  bLength                 9
  bDescriptorType         4
  bInterfaceNumber        2
  bAlternateSetting       0
  bNumEndpoints           1
  bInterfaceClass       239 Miscellaneous Device
  bInterfaceSubClass      5 USB3 Vision
  bInterfaceProtocol      2 
  iInterface              7 (error)
  Endpoint Descriptor:
    bLength                 7
    bDescriptorType         5
    bEndpointAddress     0x83  EP 3 IN
    bmAttributes            2
      Transfer Type            Bulk
      Synch Type               None
      Usage Type               Data
    wMaxPacketSize     0x0400  1x 1024 bytes
    bInterval               0
    bMaxBurst              15

I think the maybe USB controller crashed. Is there a way to reset the USB3.0 controller by writing tegra-xusb registers?

I find that sometimes there are the following logs when I plug in or unplug USB devices, and sometimes there are none. I understand that this is triggered by USB detection interruption. May I ask why there is no log sometimes?

[  116.368806] tegra-xusb-padctl 7009f000.xusb_padctl: power on UTMI pads 1
[  116.660749] tegra-xusb-padctl 7009f000.xusb_padctl: power down UTMI pad 1

Hi,
Could you connect to an external USB hub with external power supply? Certain USB devices may need large current and it is more stable to supply it through external power.

It’s a probabilistic problem that doesn’t happen every time. We have monitored the USB port current and voltage, and they are all normal.

I think maybe the USB controller of the Nano or the RTS5411S crashed and now I want to try to resume the tegra-xusb.

Could you tell me is there a way to reset this part?

Hi,
You may try the commands:
Power down USB ports - #4 by vsaw

Thanks DaneLLL for the instruction,

We tried “sudo uhubctl -l 1-2 -a off”, it could sometime resolve this error status.

For this point, we have two concerns:

  1. What does this operation(sudo uhubctl -l 1-2 -a off) indeed execute on the system?
  2. We noticed that, during soft-restart, the the RTS5411 will not be powered off-> on, so we are considering to at the this step “sudo uhubctl -l 1-2 -a off” in the start-up service. In this case, this command would be executed every time during the start up, will this cause any side-effects to the system?

Thanks!

Best regards
Leon

Hi,
The commands are shared by other users. We are not certain what are executed.

On Jetson Nano A02, we have a method to do power cycle, please check
USB Power control - #7 by DaneLLL

But on B01, it is not valid due to deviation in hardware design. The user shares the method and we think it may help your usecase, but looks like it does not totally resolve the issue. We have some discussion with teams and would like to suggest you try

echo usb2   > /sys/bus/usb/drivers/usb/unbind
echo usb2   > /sys/bus/usb/drivers/usb/bind