On Mon, 2005-04-04 at 13:22 -0700, David Brownell wrote:

> > If I pass a URB into the usb layer that has an 81 byte buffer, all those
> > 81 bytes get filled! 
> 
> Probably the first 64 in one frame, then the last bytes in the next one
> that's polled.  That's expected ... otherwise drivers would have some
> very nasty code to handle large interrupt transfers.  The policy of
> whether an interrupt URB maps to one frame or N is up to the driver,
> not usbcore or any HCD.

Hm. I don't quite understand what you're trying to say. Just to be clear
on the issue: I do get blocks of 81 bytes from the device, over and
over. If I tell the kernel I want 81 in one go, it gives me 81 as a
response to a single URB. If I tell the kernel I want just 64, it gives
me 64 in the first URB response and 17 in the second, then 64 again etc.
I suppose if I told the kernel I want 40 bytes it'd give me 40, then 40
and then 1, after which the cycle would restart.

Now, I don't really care in what blocks my driver gets those 81 bytes,
is it be correct to just tell the core usb layer that I want 81 bytes
and rely on it to fill an 81 byte buffer, regardless of how the actual
transfer looks like?

johannes

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to