Ellis Whitehead wrote:
> I had hoped that I could make some progress by investigating this
> further myself, but wasn't able to figure much out...  
> ...
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           3
>       bInterfaceClass         0 (Defined at Interface level)

A custom device should have 0xFF here.  A class of 0 in the interface
descriptor is reserved in the spec for future use.


>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x82  EP 2 IN
>         bmAttributes            1
>           Transfer Type            Isochronous
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0258  1x 600 bytes
>         bInterval               1

Isochronous endpoints are only supposed to be included in an alternate
setting other than 0.  The way you have it here, your device will
reserve bandwidth as soon as it enumerates.  In Windows, if your bus
doesn't have enough bandwidth, the device will fail enumeration.  By
moving this to an alternate setting, the device will enumerate, and you
can detect in the driver/application that the problem is insufficient
bandwidth.

-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to