android_kernel_xiaomi_sdm845/drivers/usb/core
Alan Stern 5096aedcd2 USB: Don't rebind before "complete" callback
This patch (as1130) fixes an incompatibility between the new PM
infrastructure and USB power management.  We are not allowed to call
drivers' probe routines during a system sleep transition between the
"prepare" and "complete" callbacks, but that's exactly what we do when
a driver doesn't have full suspend/resume support.  Such drivers are
unbound during the "suspend" call and reprobed during the "resume" call.

The patch causes the reprobe step to be skipped if the "complete"
callback hasn't been issued yet, i.e., if the interface's
dev.power.status field is not equal to DPM_ON.  Thus during the
"resume" callback nothing bad will happen, and during the final
"complete" callback the reprobing will occur as desired.

This fixes the problem reported in Bugzilla #11263.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-08-21 10:26:37 -07:00
..
buffer.c USB: fix codingstyle issues in drivers/usb/core/*.c 2008-02-01 14:35:08 -08:00
config.c USB: ehci tolerates some buggy devices 2008-04-24 21:16:35 -07:00
devices.c usb: hub: add check for unsupported bus topology 2008-07-21 15:16:26 -07:00
devio.c device create: usb: convert device_create to device_create_drvdata 2008-07-21 21:54:46 -07:00
driver.c USB: Don't rebind before "complete" callback 2008-08-21 10:26:37 -07:00
endpoint.c USB: usb dev_set_name() instead of dev->bus_id 2008-07-21 15:15:47 -07:00
file.c device create: usb: convert device_create to device_create_drvdata 2008-07-21 21:54:46 -07:00
generic.c USB: fix possible deadlock involving sysfs attributes 2008-05-29 13:59:03 -07:00
hcd-pci.c USB: clarify usage of hcd->suspend/resume methods 2008-04-24 21:16:48 -07:00
hcd.c USB: usb dev_name() instead of dev->bus_id 2008-07-21 15:15:46 -07:00
hcd.h usb: hub: add check for unsupported bus topology 2008-07-21 15:16:26 -07:00
hub.c USB: use reset_resume when normal resume fails 2008-07-21 15:16:48 -07:00
hub.h wusb: make ep0_reinit available for modules 2008-04-24 21:16:59 -07:00
inode.c usbfs: send disconnect signals when device is unregistered 2008-07-21 15:16:40 -07:00
Kconfig USB: Remove EXPERIMENTAL from dynamic USB minor allocation. 2008-04-24 21:16:43 -07:00
Makefile
message.c USB: fix interface unregistration logic 2008-08-13 17:32:50 -07:00
notify.c USB : correct comments in usb/core/notify.c 2008-02-01 14:34:44 -08:00
otg_whitelist.h USB: fix codingstyle issues in drivers/usb/core/*.h 2008-02-01 14:35:07 -08:00
quirks.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2008-06-17 18:10:40 -07:00
sysfs.c USB: add all configs to the "descriptors" attribute 2008-05-29 13:59:03 -07:00
urb.c USB: fix bug in usb_unlink_anchored_urbs() 2008-08-21 10:26:32 -07:00
usb.c USB: Add new PM callback methods for USB 2008-08-21 10:26:37 -07:00
usb.h USB: Add new PM callback methods for USB 2008-08-21 10:26:37 -07:00