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

Reply via email to