Device configuration fails on superspeed, succeeds on highspeed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi.

I have a device which enumerates properly on this superspeed host controler:

06:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01)

but triggers several warnings from the xhci_hcd module, and ultimately fails
activating the default configuration:

usb 1-1: new high-speed USB device number 6 using xhci_hcd
usb 1-1: config 1 interface 0 altsetting 0 bulk endpoint 0x1 has invalid maxpacket 64
usb 1-1: config 1 interface 0 altsetting 0 bulk endpoint 0x81 has invalid maxpacket 64
usb 1-1: New USB device found, idVendor=16c0, idProduct=07a9
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1: Product: USB Analyzer 1480A
usb 1-1: Manufacturer: International Test Instruments
usb 1-1: ep 0x1 - rounding interval to 32768 microframes, ep desc says 0 microframes
usb 1-1: ep 0x81 - rounding interval to 32768 microframes, ep desc says 0 microframes
usb 1-1: ep 0x82 - rounding interval to 32768 microframes, ep desc says 0 microframes
usb 1-1: ep 0x4 - rounding interval to 32768 microframes, ep desc says 0 microframes
usb 1-1: ep 0x86 - rounding interval to 32768 microframes, ep desc says 0 microframes
usb 1-1: ep 0x88 - rounding interval to 32768 microframes, ep desc says 0 microframes
xhci_hcd 0000:02:00.0: ERROR: unexpected command completion code 0x11.
usb 1-1: can't set config #1, error -22

So at this point, this device is unusable with xhci_hcd.

I checked the specs, and the warnings about wMaxPacketSize seem
justified (although it's unclear to me wether wMaxPacketSize is
restricted to exactly 512B in HS, or only upper-bound at 512B). I'm less
sure about the bInterval ones, 0 is specified as a possible value
(reading the 2.0 specs, that is). As for the final 0x11 (aka COMP_EINVAL),
I don't know what the cause is.

When plugged on one of several (5+) highspeed host controlers I have, it
works fine though.

Here is lsusb -v output of the device:

Bus 001 Device 016: ID 16c0:07a9 VOTI 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x16c0 VOTI
  idProduct          0x07a9 
  bcdDevice            0.00
  iManufacturer           1 International Test Instruments
  iProduct                2 USB Analyzer 1480A
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           60
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           6
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x88  EP 8 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

Regards,
-- 
Vincent Pelletier
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux