linux/drivers/usb/core
Alan Stern cd4376e23a USB: don't ignore suspend errors for root hubs
This patch (as1532) fixes a mistake in the USB suspend code.  When the
system is going to sleep, we should ignore errors in powering down USB
devices, because they don't really matter.  The devices will go to low
power anyway when the entire USB bus gets suspended (except for
SuperSpeed devices; maybe they will need special treatment later).

However we should not ignore errors in suspending root hubs,
especially if the error indicates that the suspend raced with a wakeup
request.  Doing so might leave the bus powered on while the system was
supposed to be asleep, or it might cause the suspend of the root hub's
parent controller device to fail, or it might cause a wakeup request
to be ignored.

The patch fixes the problem by ignoring errors only when the device in
question is not a root hub.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Chen Peter <B29397@freescale.com>
CC: <stable@vger.kernel.org>
Tested-by: Chen Peter <peter.chen@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-04-09 15:36:21 -07:00
..
buffer.c USB: Core: Fix minor coding style issues 2011-01-22 19:35:39 -08:00
config.c usbcore: get BOS descriptor set 2011-09-26 15:51:08 -07:00
devices.c USB: use usb_endpoint_maxp() instead of le16_to_cpu() 2011-08-23 09:47:40 -07:00
devio.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
driver.c USB: don't ignore suspend errors for root hubs 2012-04-09 15:36:21 -07:00
endpoint.c USB: use usb_endpoint_maxp() instead of le16_to_cpu() 2011-08-23 09:47:40 -07:00
file.c switch device_get_devnode() and ->devnode() to umode_t * 2012-01-03 22:54:55 -05:00
generic.c USB: accept RNDIS configs if there's no alternative 2010-08-10 14:35:43 -07:00
hcd-pci.c usb: fix defined but not used warnings in hcd-pci.c 2012-02-28 10:53:08 -08:00
hcd.c usb: core: hcd: make hcd->irq unsigned 2012-03-01 09:31:22 -08:00
hub.c USB: dynamically allocate usb_device children pointers instead of using a fix array 2012-03-13 14:24:07 -07:00
inode.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
Kconfig kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
Makefile usb: makefile cleanup 2010-10-22 10:22:07 -07:00
message.c USB: don't clear urb->dev in scatter-gather library 2012-04-06 13:54:00 -07:00
notify.c usb: Add export.h for EXPORT_SYMBOL/THIS_MODULE where needed 2011-10-31 19:31:25 -04:00
otg_whitelist.h USB: fix codingstyle issues in drivers/usb/core/*.h 2008-02-01 14:35:07 -08:00
quirks.c USB: add quirk for another camera 2012-01-03 16:48:56 -08:00
sysfs.c usb: Add support for indicating whether a port is removable 2012-02-09 08:40:11 -08:00
urb.c USB documentation: explain lifetime rules for unlinking URBs 2012-04-06 13:54:00 -07:00
usb.c USB: cleanup the handling of the PM complete call 2012-01-24 14:23:49 -08:00
usb.h USB: cleanup the handling of the PM complete call 2012-01-24 14:23:49 -08:00