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

Reply via email to