.\" This manpage has been automatically generated by docbook2man
.\" from a DocBook document. This tool can be found at:
.\"
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng .
.TH "USB_SET_CONFIGURATION" "" "06 October 2005" "" ""
.SH NAME
usb_set_configuration \- Makes a particular device setting be current
.SH SYNOPSIS
"SYNOPSIS"
.sp
\fB
.sp
int usb_set_configuration (struct usb_device * \fIdev\fB, int \fIconfiguration\fB);
\fR
.SH "ARGUMENTS"
.TP
\fB\fIdev\fB\fR
the device whose configuration is being updated
.TP
\fB\fIconfiguration\fB\fR
the configuration being chosen.
.SH "CONTEXT"
.PP
!in_interrupt ()
.SH "DESCRIPTION"
.PP
This is used to enable non-default device modes. Not all devices
use this kind of configurability; many devices only have one
configuration.
.PP
USB device configurations may affect Linux interoperability,
power consumption and the functionality available. For example,
the default configuration is limited to using 100mA of bus power,
so that when certain device functionality requires more power,
and the device is bus powered, that functionality should be in some
non-default device configuration. Other device modes may also be
reflected as configuration options, such as whether two ISDN
channels are available independently; and choosing between open
standard device protocols (like CDC) or proprietary ones.
.PP
Note that USB has an additional level of device configurability,
associated with interfaces. That configurability is accessed using
\fBusb_set_interface\fR\&.
.PP
This call is synchronous. The calling context must be able to sleep,
and must not hold the driver model lock for USB; usb device driver
\fBprobe\fR methods may not use this routine.
.PP
Returns zero on success, or else the status code returned by the
underlying call that failed. On succesful completion, each interface
in the original device configuration has been destroyed, and each one
in the new configuration has been probed by all relevant usb device
drivers currently known to the kernel.