> > The portable way to get a one-shot interrupt transfer should be
> > to submit the transfer as usual (real period) then unlink it in the
> > completion handler for that transfer.
> 
> That won't work with uhci.o or usb-uhci.o. You can't unlink a
> resubmitting interrupt urb in the completion handler.

And that's exactly why I said "should be ..." :) 

Current EHCI and OHCI drivers do handle that correctly.
Is there some reason not to treat that as a UHCI bug?

Interrupt transfers aren't wholly portable between drivers,
except for the HID-IN style where fixed size (but maybe
short-read enabled) INTR transfers fire until some thread
unlinks the URB.  Bleech.


> Maybe we should drop the auto resubmitting for 2.5 and require drivers
> to use ->next?

I'd rather keep that current model, just fix the glitches.
Changing the model would forgo the whole reason that
USB has interrupt transfers in the first place!  I can think
of two main glitches just now:

    - INTR-OUT transfer sizes should be changeable.
      The IN transfer sizes are controlled by sender (device),
      but the OUT ones (sent by host) are fixed size.

    - There's that unlink-in-completion issue for UHCI.

Forcing interrupt transfer bandwidth to be rescheduled
after every transfer can mean dropping the bandwidth
and latency guarantee.  It's also a needless waste of
CPU cycles (especially for split transactions) in the typical
case, and would increase interrupt latencies.

- Dave



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

Reply via email to