On Mon, 14 Oct 2002, Dan Streetman wrote:

> >a DATA stage, a single control transfer might take up to 5 seconds.
> 
> How's that?  5 seconds is 5000 frames, meaning 5000 * maxPacketSize, which 
> in the worst case is usually not less than 8 bytes, so in 5 seconds you 
> can transfer 40KB.

You could, yes. But the device is free to be much slower...

> I think that's more than 1 control transfer...

No. The USB spec (section 9.2.6.4) grants up to 500 msec for every single 
DATA IN packet in a control transfer. I don't mean the packet would take 
that long to go over the wire, but it's acceptable to source/sink one 
packet every 500 msec. This means one would see a lot of NAK's meanwhile.

While there is a global upper limit of 5 sec for the whole control 
transfer if it's DATA OUT, the specs don't mention any upper limit if the 
DATA stage is directed to the host. With minimal EP0 maxPacketSize=8 and 
some longish descriptor (long unicode string or big config with several 
altsettings and/or lot of endpoints or class/vendor specific descriptor 
appended to the config descriptor) - say 256 bytes - IMHO it would still 
be a conforming device should it take up to 16 seconds (!) for the 
transfer (provided it follows the one packet every 500 msec rule).

Admittedly, I'm stressing extreme cases here for demonstration - my point 
was simply it is both expected (due to the involved internal housekeeping) 
and granted by the specs for a control transfer to be pretty NAK-friendly.

I'm just wondering whether I could add such a pathologic device mode to 
the usbtest firmware to see what would happen ;-)

Martin



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