> > > All of these exceptions are one of the reasons I dislike the current
> > > (2.4) URB interface.
> > 
> > I'm not entirely sure what you mean by that ... although I've begun to
> > dislike "automagic resubmit" more.  The ISO ring stuff is particularly
> > annoying, there's no clean way to report some errors.  And it's very
> > awkward for INTR-OUT transfers.
> > 
> > I suspect that what you mean is at least that you'd like to see a simpler
> > model for periodic URBs ... with no "automagic resubmit", but with each
> > type of URB being queuable in the HCD.  That'd likely make sense to
> > me as a 2.5 change, once the bandwidth reservation issues get worked.
> > (Reserve at set_config/set_interface time?? :)
> 
> Yeah, that's pretty much what I meant. The URB interface pretends that
> everything is the same (one entry point, usb_submit_urb) but all of the
> different URB's behave differently. It's very difficult to understand.

Hmm, that's true too.  Lots of implicit state in those URBs, and HCDs
are always dis-entangling it ...  got any desire to fix any of it (2.5 :)?

One direction that came to mind is stripping out most of what's now
in URBs, and making them each refer to a single "transfer".  (Maybe
just wrappers for buffer, length, and a completion handler.) Then
have type-specific submit calls (vs type-specific URB fields), each
of which implied queueing (no resubmit) and might even queue
many (related) transfers at a time.

    - control ... a transfer for SETUP, an optional one for its DATA
    - bulk ... just one transfer (N packets)
    - intr ... like bulk, but adds a scheduling interval
    - iso ... like intr (no iso_packet_desc)

Done right, I could imagine something very similar working on the device
side (and for "USB on-the-go", both device and host sides).

- Dave







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

Reply via email to