On 10/19/2011 10:07 PM, Paul Zimmerman wrote:
Hi Sebastian,
Hi Paul,
The device will only start a transfer for a stream that the host has submitted a request for on the command pipe, so presumably the host will not refuse a stream that it has requested.
That is true. I've been browsing through the code and every stream has its own ring where it is queued into. So if the Host queues two streams for then the device can choose which one to serve first. The first urb generates the XferNotReady event.
And which stream to transfer will normally be selected by the device, using ERDY(Stream, NumP).
Yes. This is based on the fact the device can send streams in random order and the host will take them all. So, it works as long as no specific ordering is required. A sane assumption is that the Host is the boss and always queues urbs for streams it requests from the device via internal commands and lets the device to decide which one it wants to serve first. So it should not matter in which order the device serves the requests.
So I think this should be OK. I guess only time will tell, though.
Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html