We just have a discussion on libusb-win32 about a device from Microsoft. Xbox Kinnect has the Xbox NUI Audio device which is a high speed USB device and it has an isoc endpoint with bInterval of 5. http://libusb.6.n5.nabble.com/Cheating-isochronous-transfers-with-bInterval-5-td4397497.html Microsoft does not seem to support this with the Windows host controller driver. http://msdn.microsoft.com/en-us/library/ff539114(v=VS.85).aspx "Isochronous transfers on high speed devices support polling period values of 1, 2, 4, and 8. If a client driver submits a URB_FUNCTION_ISOCH_TRANSFER request for a high speed isochronous endpoint with polling period greater than 8 microframes, the request fails with status USBD_STATUS_INVALID_PARAMETER." On the other hand, the USB 2.0 specification says this (Page 271, Table 9-13). +++++++++++++++++++++++ bInterval "Interval for polling endpoint for data transfers. Expressed in frames or microframes depending on the device operating speed (i.e., either 1 millisecond or 125 Îs units). For full-/high-speed isochronous endpoints, this value must be in the range from 1 to 16. The bInterval value is used as the exponent for a 2^(bInterval-1) value; e.g., a bInterval of 4 means a period of 8 (2^(4-1))." ++++++++++++++++++++++++ The question is whether this device violates USB specification? My interpretation is that it is not violating the specification. Apparently it is supported under Linux. Does Linux has similar limitation about the bInterval value for high speed isoc endpoint like Windows? The following is the "lsusb -vvv" output. http://openkinect.org/w/index.php?title=Lsusb_output&oldid=22 Bus 002 Device 013: ID 045e:02ad Microsoft Corp. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x045e Microsoft Corp. idProduct 0x02ad bcdDevice 1.00 iManufacturer 1 Microsoft iProduct 2 Xbox NUI Audio iSerial 4 A44886D18656039A bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 46 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 4 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 13 Transfer Type Isochronous Synch Type Synchronous Usage Type Data wMaxPacketSize 0x020c 1x 524 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 13 Transfer Type Isochronous Synch Type Synchronous Usage Type Data wMaxPacketSize 0x0048 1x 72 bytes bInterval 1 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered -- Xiaofan -- 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