Well I basically understand what is wrong. Usbaudio is expecting the packet size to be 4 and the value to be encoded as 16.16 because the device is operating at high speed. I made the change and my device now shows up properly as an output device and playback works but the feedback polling interval is incorrect.
Since the feedback endpoint descriptor is not class specific I can see why one would expect it to be a usb 2.0 standard endpoint descriptor, however, that would mean I should also change my other audio streaming endpoint descriptors.
Unfortunately, I'm not sure the proper way to fix this - any advice would be appreciated.
Cheers
On Thu, Sep 9, 2010 at 10:04 AM, 6275 kson 6275.kson@gmail.com wrote:
On Thu, Sep 9, 2010 at 2:50 AM, Clemens Ladisch clemens@ladisch.dewrote:
6275 kson wrote:
cannot submit syncpipe for urb 0, error -90: internal error
Documentation/usb/error-codes.txt says: | -EMSGSIZE (a) endpoint maxpacket size is zero; it is not usable | in the current interface altsetting. | (b) ISO packet is larger than the endpoint maxpacket. | (c) requested data transfer length is invalid: negative | or too large for the host controller.
So, what is the sync packet size?
The packet size is 3.
The descriptor used for High Speed is essentially the same as the full speed descriptor except we have adjusted the endpoint polling rates so they match the full speed rate (1ms).
Thanks for your help,