On Mon, Mar 19, 2001 at 12:25:46AM +0100, Benoit PAPILLAULT wrote:
> Maybe some guru on this list will give us more information. I'll like to
> know myself what is the use of usb_set_configuration(),
> usb_claim_interface(), usb_set_altinterface(). Is there a relationship with
> the endpoint adresse you can use at a given time?
See it as a tree of possible modes of the device.
Each device can have multiple configurations, only one at a time active (eg.
combined ISDN/analog modem). Usually there is only one (default)
configuration. You can set the appropriate config with
usb_set_configuration().
Each configuration can have multiple interfaces. They are used to bundle
endpoints for a specific function (eg. interface 0 for control-endpoints of
an audio device (mixer), and interface 1 for the isochronous streaming
endpoints).
Since the interfaces may have nothing in common, a driver can explicitely
grab only specific interfaces of a device, leaving the other interfaces for
other (more appropriate) drivers. This is done with usb_claim_interface().
You can/should only use those endpoints, which are described in the claimed
interface.
To accomplish mode changes of one interface (eg. isochronous bandwidth for
various sample rates), one interface can have multiple/alternate settings,
possibly with more/less/other/altered endpoints. You choose the right
combination with usb_set_altinterface(). This setting also affects the
accessible endpoints and their behavior. For isochronous streaming, there
are usually at least 2 alternate settings, one with iso completely turned
off to save bandwidth and one or more with "bandwidth".
There's a more detailed description at http://usb.cs.tum.edu/usbdoc/
--
Georg Acher, [EMAIL PROTECTED]
http://www.in.tum.de/~acher/
"Oh no, not again !" The bowl of petunias
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel