linux_old1/drivers/usb/core
Sarah Sharp dcc01c0864 usb: Disable USB 2.0 Link PM before device reset.
Before the USB core resets a device, we need to disable the L1 timeout
for the roothub, if USB 2.0 Link PM is enabled.  Otherwise the port may
transition into L1 in between descriptor fetches, before we know if the
USB device descriptors changed.  LPM will be re-enabled after the
full device descriptors are fetched, and we can confirm the device still
supports USB 2.0 LPM after the reset.

We don't need to wait for the USB device to exit L1 before resetting the
device, since the xHCI roothub port diagrams show a transition to the
Reset state from any of the Ux states (see Figure 34 in the 2012-08-14
xHCI specification update).

This patch should be backported to kernels as old as 3.2, that contain
the commit 65580b4321 "xHCI: set USB2
hardware LPM".  That was the first commit to enable USB 2.0
hardware-driven Link Power Management.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@vger.kernel.org
2013-10-16 12:24:17 -07:00
..
Kconfig USB: remove remaining instances of USB_SUSPEND 2013-05-15 13:44:44 -04:00
Makefile usb: Add driver/usb/core/(port.c,hub.h) files 2013-01-18 15:49:00 -08:00
buffer.c usb: fix some scripts/kernel-doc warnings 2013-08-03 11:30:14 +08:00
config.c usb: config->desc.bLength may not exceed amount of data returned by the device 2013-08-12 12:24:27 -07:00
devices.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
devio.c Merge 3.12-rc3 into usb-next 2013-09-29 18:45:55 -07:00
driver.c USB: core: use DRIVER_ATTR_RW() 2013-08-23 15:12:14 -07:00
endpoint.c USB: core: be specific about attribute permissions 2013-08-25 15:12:03 -07:00
file.c drivers: usb: core: file.c: moved asterisk to variable name 2013-10-11 17:06:11 -07:00
generic.c USB: avoid error messages when a device is disconnected 2013-03-28 11:05:52 -07:00
hcd-pci.c usb: core: implement AMD remote wakeup quirk 2013-09-25 17:24:37 -07:00
hcd.c usb/hcd: remove unnecessary local_irq_save 2013-10-14 11:09:12 -07:00
hub.c usb: Disable USB 2.0 Link PM before device reset. 2013-10-16 12:24:17 -07:00
hub.h USB: global suspend and remote wakeup don't mix 2013-07-16 15:33:02 -07:00
message.c usb: fix some scripts/kernel-doc warnings 2013-08-03 11:30:14 +08: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
port.c USB: core: be specific about attribute permissions 2013-08-25 15:12:03 -07:00
quirks.c usb: core: usb_amd_resume_quirk() can be static 2013-09-26 11:56:50 -07:00
sysfs.c drivers: usb: core: {file,hub,sysfs,usb}.c: Whitespace fixes 2013-10-11 17:02:37 -07:00
urb.c usb-anchor: Delay usb_wait_anchor_empty_timeout wake up till completion is done 2013-10-11 16:33:58 -07:00
usb-acpi.c usb/acpi: binding xhci root hub usb port with ACPI 2013-03-25 10:39:17 -07:00
usb.c drivers: usb: core: {file,hub,sysfs,usb}.c: Whitespace fixes 2013-10-11 17:02:37 -07:00
usb.h usbcore: set lpm_capable field for LPM capable root hubs 2013-09-17 09:49:24 -07:00