USB CDC Device crash the N2 and N2+ xHCI usb controller
rpineau opened this issue · 0 comments
I have a usb device that crash the internal xHCI usb controller as soon as it gets plugged in :
[ 435.179267] usb 1-1.2: new full-speed USB device number 4 using xhci-hcd
[ 435.303498] usb 1-1.2: not running at top speed; connect to a high speed hub
[ 435.304302] usb 1-1.2: New USB device found, idVendor=15a2, idProduct=a50f
[ 435.304310] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 435.304315] usb 1-1.2: Product: Celestron Focuser
[ 435.304320] usb 1-1.2: Manufacturer: Celestron
[ 435.304324] usb 1-1.2: SerialNumber: MF_v1
[ 435.317659] cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device
[ 442.040985] xhci-hcd xhci-hcd.0.auto: xHCI host not responding to stop endpoint command.
[ 442.040992] xhci-hcd xhci-hcd.0.auto: Assuming host is dying, halting host.
[ 442.057064] xhci-hcd xhci-hcd.0.auto: Host not halted after 16000 microseconds.
[ 442.057071] xhci-hcd xhci-hcd.0.auto: Non-responsive xHCI host is not halting.
[ 442.057076] xhci-hcd xhci-hcd.0.auto: Completing active URBs anyway.
[ 442.057237] xhci-hcd xhci-hcd.0.auto: HC died; cleaning up
[ 442.057603] usb 1-1: USB disconnect, device number 2
[ 442.057624] usb 2-1: USB disconnect, device number 2
[ 442.058430] usb 1-1.2: USB disconnect, device number 4
[ 442.064007] usb 1-2: USB disconnect, device number 3
I tested with the following kernel on both N2 and N2+ :
4.9.230-76
4.9.230-96
4.9.236-97
I tried with an external powered usb hub on the front USB3 ports and on the USB2 OTG port. Same crash (different usb tree id).
This is the device :
Bus 001 Device 004: ID 15a2:a50f Freescale Semiconductor, Inc. Celestron Focuser
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x15a2 Freescale Semiconductor, Inc.
idProduct 0xa50f
bcdDevice 0.00
iManufacturer 1 Celestron
iProduct 2 Celestron Focuser
iSerial 3 MF_v1
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0043
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 0
CDC Header:
bcdCDC 1.10
CDC Call Management:
bmCapabilities 0x00
bDataInterface 1
CDC ACM:
bmCapabilities 0x00
CDC Union:
bMasterInterface 0
bSlaveInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 32
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 32
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 16
bNumConfigurations 1
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0003
Self Powered
Remote Wakeup Enabled
I tested another USB CDC device and no problem so this device does something the kernel doesn't like.