Much of this stuff has been available since 2.4 days; it's just policy choices driver authers can make when building device ID tables for hotplugging. See below.
Only the multi-configuration parts should need to be new. I think multi-config support could be easily added on the host side by just adding a new struct usb_driver call, like
u8 configure (struct usb_device *dev,
const struct usb_device_id *id);It'd be called in a context that can sleep, letting drivers with appropriate USB_DEVICE match criteria return the appropriate bConfigurationValue choice when today's default (index 0) is inappropriate.
[EMAIL PROTECTED] wrote:
... In my proposal, there is only one driver for a given device ....
Today, Linux drivers can choose to implement that policy. Most just use USB_DEVICE in the driver's id table, and "know" the device only has the one interface.
Or ... they can implement "class driver" binding policies, even simultaneously!, by listing some USB_INTERFACE_INFO in the id table. That works well for composite devices, among others.
Unless the config has more than one interface, there can be no difference between today's "driver per interface" model and a "driver per device" model.
Stuart Lynne wrote:
> Vendor provided drivers will need to be able to control and manage an > entire device. It may also be interesting to allow a vendor driver to > request that a class driver be used for an interface.
That works already. Remember, drivers don't need to claim all config interfaces (but they could); so for example if the config has both a vendor-specific interface and a HID interface, it's easy to make the Right Thing happen.
You can even have different vendor-specific drivers on several interfaces at the same time. Just write their probe() routines to know what interface to use, they can have the same USB_DEVICE tables.
- Dave
------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The best thread debugger on the planet. Designed with thread debugging features you've never dreamed of, try TotalView 6 free at www.etnus.com. _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
