I'm going to try bulk transfers this afternoon.
I also just tried doing high bandwidth interrupt transfers. I thought that perhaps I could get three transfers per microframe.
Not yet supported ...
In /proc/bus/usb/devices I see this for my interrupt endpoint: E: Ad=82(I) Atr=03(Int.) MxPS=3066 Ivl=125us
Note that 3066 is 3X1022 where 1022 was my base packet size. Oddly, the wMaxPacketSize element of the usb_endpoint_descriptor structure claims the size is 5118 bytes. That is almost, but not quite 5*1022 (5120). This is obviously a bug, and it definitely fails with the -75 (OVERFLOW) status return in the callback.
See the spec for wMaxPacketSize ... it makes more sense in hex, since you're interpreting the high bandwidth multiplier bitfield incorrectly.
When I use 3066 instead of the bogus 5118 the transfers appear to happen, but now I get one call to my callback every 3 milliseconds instead of every millisecond. So it is still doing only one 1022 byte transfer per millisecond.
That's because nobody's needed the high bandwidth support yet. Do you need that to work?
- Dave
Richard
------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel