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
signature.asc
Description: This is a digitally signed message part