Hello Paul, On 19.12.2013 00:40, Paul Zimmerman wrote: >> The exact same code works when the device is attached to the NEC >> controller (transferring 33792 bytes per ISO packet as requested), but >> fails on the Intel controller (transferring only 11264 bytes, exactly >> 1/3 of the requested size). > What are the values from the ISO endpoint's Endpoint descriptor and > SuperSpeed Endpoint Companion descriptor? Here's the relevant lsusb output: Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 1 bMaxBurst 10 Mult 2 > If the Mult value is 2 (bits 1:0 of the Companion descriptor's bmAttributes > field) and the Intel controller is treating it as 0 for some reason, that > would give you 1/3 of the requested size. > Or perhaps it is a throughput issue; if the bInterval is 1, then 33792 > bytes every 128us is a pretty high data rate. Perhaps the Intel controller > can't keep up. Both assumptions are true for this descriptor. I've also found that when plugging the Kinect into the NEC controller (which works), there's an additional message in the kernel log: Dec 18 09:28:02 flunder kernel: [23267.972204] usb 6-1: Parent hub missing LPM exit latency info. Power management will be impacted. This message doesn't appear with the Intel controller. I'm not sure if this is somehow related to the device caps - lsusb shows: Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 22 bNumDeviceCaps 2 SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x00 Latency Tolerance Messages (LTM) Supported wSpeedsSupported 0x000c Device can operate at High Speed (480Mbps) Device can operate at SuperSpeed (5Gbps) bFunctionalitySupport 2 Lowest fully-functional device speed is High Speed (480Mbps) bU1DevExitLat 10 micro seconds bU2DevExitLat 2047 micro seconds USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000002 Link Power Management (LPM) Supported Device Status: 0x0001 Self Powered > Do you have USB debugging enabled (CONFIG_USB_DEBUG=y) in the kernel > config? With the latest kernels that should cause the xHCI driver to print > debug messages to the dmesg log. In earlier kernels you also have to enable > CONFIG_USB_XHCI_HCD_DEBUGGING. No, it's a stock Ubuntu kernel ATM. Thanks for the hint, I'll rebuild a custom one with those flags enabled. > Do you have a USB bus analyzer? That should show you exactly what is going > on. If not, maybe you can capture a usbmon trace. I don't know anything > about usbmon, but Alan Stern might be able to help with that. I don't have access to a hardware bus analyzer. Would usbmon help in that case? I thought usbmon logs the submitted URBs, but not necessarily what the host controller actually sends out? Best, Florian -- SENT FROM MY DEC VT50 TERMINAL
Attachment:
signature.asc
Description: OpenPGP digital signature