On Mon, 22 Sep 2003, Linus Torvalds wrote:

> Yes. Additional testing (making the code just increase the size of the 
> transfer until it fails) shows that a size of 63 still works, but a size 
> of 64 bytes fails.
> 
> Actually - with a 64-byte transfer, we appear to get the 64 bytes ok, but 
> the subsequent CSW status word read fails, so the 64-byte case seems to be 
> the one that starts confusing the device.
> 
> If I remember right, USB-1 "big packets" are 64 bytes in size, and a 
> 64-byte bulk transfer would be two packets (one full-sized one, one 
> zero-sized one).

It's not quite that simple.  If the host requested a transfer that was 
larger than 64 bytes and the device only had 64 bytes of data available, 
then yes, it would send a 64-byte packet followed by a short 0-byte packet 
to indicate an early termination.  But if (as in this case) the host 
requested a 64-byte transfer, the device would send exactly those 64 bytes 
in a single packet and nothing else -- there being no need to indicate an 
early termination.

>  So this seems to support the notion that the device is 
> fine as long as it can fit the whole bulk transfer in just one packet.
> 
> Which cleanly explains why EHCI "just worked". 

Alan Stern



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

Reply via email to