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.

Alan Stern


-------------------------------------------------------------------------
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

Reply via email to