David Brownell wrote:

>
>GOAL:  support INTR-OUT and INTR-IN transfers with
>one API model which could also be used for a device
>controller API using an URB-like model.
>
>
>CURRENT MODEL:  all interrupt transfers are specified
>with using an URB with transfer_buffer_length set to a
>fixed packet size, and a fixed polling interval.  Also,
>current host controller drivers say only one interrupt URB
>(usually of at most maxpacketsize) may be queued.
>
usb-ohci allows to queue interrupt URBs. If you want to keep a 1ms
interrupt endpoint bussy you have to queue interrupt URBs.

The current model lacks the phase (or offset) of the polling interval.
Also  for queued URBs the 'fixed' polling intervall could be changed
from URB to URB ( inconsistently).

The model as I think it should be:

For each interrupt endpoint there are scheduled time slots (offset and 
interval)
for the transfer of data. This is a property of the endpoint and should 
be defined
by 'set interface'  
(needs a new API (set_endpoint_properties) call for HCDs because
at least ohci would benefit of static endpoint properties).
Now, at a scheduled time slot if there is a queued URB it will be 
transfered -
if there is no queued URB then there is no transfer.

The resubmition of the URBs is a different story but maybe we should
define a consistent way of resubmition for all kinds of transfers.
Also during the callback the URB is owned by the device driver so
length and databuffer can be changed.

- Roman





_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to