high speed isochronous endpoint with bInterval of 5

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

 



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


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

  Powered by Linux