usb_driver_set_configuration — Provide a way for drivers to change device configurations
|struct usb_device * udev,|
the device whose configuration is being updated
the configuration being chosen.
Device interface drivers are not allowed to change device configurations. This is because changing configurations will destroy the interface the driver is bound to and create new ones; it would be like a floppy-disk driver telling the computer to replace the floppy-disk drive with a tape drive!
Still, in certain specialized circumstances the need may arise. This routine gets around the normal restrictions by using a work thread to submit the change-config request.