On Fri, Oct 11, 2002, David Brownell <[EMAIL PROTECTED]> wrote: > Johannes Erdfelt wrote: > >>-move bandwidth reservation into submit_interrupt and submit_isochronous. > >>Reserve bandwidth at start of submit_iso, and release on error. Reserve > >>at end of submit_common (for int only, not bulk). For interrupt, only > >>reserve if the URB is the first (i.e. not queued). Only release if the > >>URB is the last (i.e. no more queued). > > > > Good point. We should also (in another thread) discuss how we're going > > to fix bandwidth reservation in the long run. > > Notice the changed subject line ... :) > > Reservation should be on a per-endpoint basis, for both ISO and INTR > transfer modes, if we try to follow the USB spec. Dan's change makes > interrupt transfers work that way ... ISO should too. > > The tricky bit is that the usb_{claim,release}_bandwidth() calls work > on urbs, not endpoints. So I think those calls need to vanish, and > HCDs need to switch to more precise math.
Exactly. The question now is where should we do that? The current API is specific to URB's so it won't be as easy as just moving the calls to urb_submit_urb or something. Maybe we should create some functions to reserve and release bandwidth and let the drivers cooperatively allocate and release those. I'm not sure we should put that much trust into the drivers. Maybe we should update usb_submit_urb to ensure that the driver has allocated bandwidth before we accept the URB? This will ensure that all drivers are compliant at the expense of modifying every driver that does asynchronous URB's. Ideas? JE ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel