On Sunday 10 June 2007, Alan Stern wrote: > On Sun, 10 Jun 2007, Laurent Pinchart wrote: > > From my experience, a common cause of bogus bInterval values is > > developers forgetting that the value has a different meaning for > > high-speed and low-speed/full-speed devices. I've come across a device > > reporting interrupt bInterval set to 32 instead of 9. By sheer luck your > > patch fixes this properly, but it would set a wrong bInterval value for > > devices setting bInterval to 16 instead of 8 for instance. > > > > The USB developers FAQ (available at http://www.lvr.com/usbfaq.htm) > > states that > > > > "Reports are that many device manufacturers are using full-speed > > bInterval values in high-speed descriptors. Reports also say that under > > Windows, a device may receive its intended polling rate (rather than its > > requested polling rate) in spite of this error. Other operating systems > > are likely to attempt to provide the requested polling rate, or may > > report an illegal bInterval value." > > > > For high-speed interrupt endpoints, wouldn't it be better to set > > bInterval to fls(bInterval*8) if the requested value is higher than 16 ? > > It's okay with me if you want to change the patch in that way. Just be > sure to do the conversion correctly.
I prepared a modified patch to handle low/full-speed interrupt bInterval values for high-speed devices. I'll sign and send the patch, but I don't want to take credit for your work. Please let me know if I should resend it with different options/comments. Laurent Pinchart ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel