android_kernel_xiaomi_sm8350/drivers/usb/core
Alan Stern 3f141e2aed USB: unconfigure devices which have config 0
Some USB devices do have a configuration 0, in contravention of the
USB spec.  Normally 0 is supposed to indicate that a device is
unconfigured.

While we can't change what the device is doing, we can change usbcore.
This patch (as852) allows usb_set_configuration() to accept a config
value of -1 as indicating that the device should be unconfigured.  The
request actually sent to the device will still contain 0 as the value.
But even if the device does have a configuration 0, dev->actconfig
will be set to NULL and dev->state will be set to USB_STATE_ADDRESS.

Without some sort of special-case handling like this, there is no way
to unconfigure these non-compliant devices.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-02-16 15:32:21 -08:00
..
buffer.c USB: a bit more coding style cleanup 2007-02-07 15:44:40 -08:00
config.c usb: deal with broken config descriptors 2006-09-27 11:58:55 -07:00
devices.c USB: fix needless failure under certain conditions 2007-02-16 15:32:17 -08:00
devio.c USB: unconfigure devices which have config 0 2007-02-16 15:32:21 -08:00
driver.c Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 2007-02-07 19:23:21 -08:00
endpoint.c USB: In init_endpoint_class, use PTR_ERR to obtain an errno value, not IS_ERR 2007-02-16 15:32:17 -08:00
file.c USB: convert usb class devices to real devices 2007-02-07 15:44:31 -08:00
generic.c USB: unconfigure devices which have config 0 2007-02-16 15:32:21 -08:00
hcd-pci.c USB: Properly unregister reboot notifier in case of failure in ehci hcd 2006-09-27 11:58:54 -07:00
hcd.c usbcore: remove unused bandwith-related code 2007-02-07 15:44:37 -08:00
hcd.h usbcore: remove unused bandwith-related code 2007-02-07 15:44:37 -08:00
hub.c USB: fix concurrent buffer access in the hub driver 2007-02-16 15:32:19 -08:00
hub.h USB: Move private hub declarations out of public header file 2006-12-01 14:23:30 -08:00
inode.c [PATCH] struct path: convert usb 2006-12-08 08:28:50 -08:00
Kconfig usbcore: remove unused bandwith-related code 2007-02-07 15:44:37 -08:00
Makefile usbcore: move code among source files 2006-09-27 11:58:50 -07:00
message.c USB: unconfigure devices which have config 0 2007-02-16 15:32:21 -08:00
notify.c usbfs: private mutex for open, release, and remove 2006-09-27 11:58:49 -07:00
otg_whitelist.h USB: Fix apparent typo CONFIG_USB_CDCETHER. 2007-02-16 15:32:18 -08:00
sysfs.c USB: unconfigure devices which have config 0 2007-02-16 15:32:21 -08:00
urb.c usbcore: trivial whitespace fixes 2007-02-07 15:44:40 -08:00
usb.c usbcore: trivial whitespace fixes 2007-02-07 15:44:40 -08:00
usb.h usbcore: remove unused argument in autosuspend 2006-12-01 14:25:53 -08:00