Hello Dan, On Sunday 13 October 2002 18:30, David Brownell wrote:
> Since some point in the 2.3 development cycle, device drivers use the > common usb_submit_urb() API to request bandwidth. And that bandwidth > is released when that URB's endpoint is no longer active. It's a > simple model that works ... and should continue to work. It does *not* work. It's too simple. Bandwidth reservation and message transmission are different. And because they are different, a good design should separate them. (Think of a read() system call without an open(), this would be the same...). usb_submit_urb() will fail for propper bandwidth allocation if the first usb_submit_urb() requests less bandwidth as the second. And how do you release bandwidth? Never? How does it happen for such a mature technology (USB), that the Linux API is not designed to cover all USB aspects in a simple and effective manner? Please - PLEASE! - focus on *design* first. I don't mind if I have to rewrite my whole driver for Linux 2.6. But I *do* mind if I have to - make my own lib for queueing of control messages. - code around usbdefvs, which is issuing control messages at probe() time. - work around INT OUT with non-constant message length (o what a mess!). - acount for the differences of three HCD drivers. I had to do all of them, and it was about 30% of the overall time to write and test the driver, and for some of the above problems, the only possible solution was a hack. I would like very much an API where I have to open() an endpoint before using it, and closing it afterwards. And open() should lock out all other libs/drivers for this endpoint! Bandwith allocation should be available as an additional call, so that I can change bandwith at will. Just my 2 cents as a device driver writer... best regards Wolfgang ------------------------------------------------------- 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