linux/drivers/usb/host
Alan Stern 3e8d6d85ad USB: EHCI: add delay during suspend to prevent erroneous wakeups
High-speed USB connections revert back to full-speed signalling when
the device goes into suspend.  This takes several milliseconds, and
during that time it's not possible to tell reliably whether the device
has been disconnected.

On some platforms, the Wake-On-Disconnect circuitry gets confused
during this intermediate state.  It generates a false wakeup signal,
which can prevent the controller from going to sleep.

To avoid this problem, this patch adds a 5-ms delay to the
ehci_bus_suspend() routine if any ports have to switch over to
full-speed signalling.  (Actually, the delay was already present for
devices using a particular kind of PHY power management; the patch
merely causes the delay to be used more widely.)

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reviewed-by: Peter Chen <Peter.Chen@freescale.com>
CC: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-18 12:04:41 -08:00
..
whci usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
bcma-hcd.c DMA-API: usb: bcma: replace dma_set_mask()+dma_set_coherent_mask() with new helper 2013-10-31 14:48:34 +00:00
ehci-atmel.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-dbg.c usb: Use dev_is_pci() to check whether it is pci device 2013-12-08 18:01:56 -08:00
ehci-exynos.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-fsl.c USB: ehci-fsl: Use devm_ioremap_resource() 2013-12-18 16:33:47 -08:00
ehci-fsl.h powerpc/usb: fix bug of CPU hang when missing USB PHY clock 2012-09-05 16:52:08 -07:00
ehci-grlib.c USB: ehci-grlib: use dev_err() instead of printk() 2013-12-18 16:32:41 -08:00
ehci-hcd.c USB: kill #undef VERBOSE_DEBUG 2013-12-03 10:34:33 -08:00
ehci-hub.c USB: EHCI: add delay during suspend to prevent erroneous wakeups 2014-02-18 12:04:41 -08:00
ehci-mem.c USB: EHCI: fix sparse errors 2013-10-19 14:08:04 -07:00
ehci-msm.c USB: ehci-msm: Add device tree support and binding information 2013-10-11 16:31:15 -07:00
ehci-mv.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-mxc.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-octeon.c USB: ehci-octeon: Use devm_ioremap_resource() 2013-12-18 16:34:20 -08:00
ehci-omap.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-orion.c USB: ehci-orion: Use devm_*() functions 2013-12-18 16:33:47 -08:00
ehci-pci.c usb: ehci: use amd_chipset_type to filter for usb subsystem hang bug 2013-10-03 15:44:50 -07:00
ehci-platform.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-pmcmsp.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-ppc-of.c USB: ehci-ppc-of: use dev_err() instead of printk() 2013-12-18 16:32:41 -08:00
ehci-ps3.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-q.c usb: kill DEBUG compile option 2013-12-03 10:34:33 -08:00
ehci-sched.c USB: EHCI: fix sparse errors 2013-10-19 14:08:04 -07:00
ehci-sead3.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-sh.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-spear.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-sysfs.c USB: EHCI: use a bandwidth-allocation table 2013-10-11 16:45:43 -07:00
ehci-tegra.c ARM: SoC cleanups for 3.14 2014-01-23 18:36:55 -08:00
ehci-tilegx.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ehci-timer.c USB: EHCI: improve interrupt qh unlink 2013-08-12 11:43:48 -07:00
ehci-w90x900.c USB: ehci-w90x900: Use devm_ioremap_resource() 2013-12-18 16:35:11 -08:00
ehci-xilinx-of.c USB: ehci-xilinx-of: use dev_err() instead of printk() 2013-12-18 16:32:41 -08:00
ehci.h usb: ehci: add freescale imx28 special write register method 2014-01-13 15:54:03 -08:00
fhci-dbg.c
fhci-hcd.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c USB: FHCI: upgrade the isochronous API 2013-05-30 21:34:31 +09:00
fhci-tds.c
fhci.h USB: FHCI: upgrade the isochronous API 2013-05-30 21:34:31 +09:00
fotg210-hcd.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
fotg210.h fotg210: remove conditional compilation 2013-12-03 10:28:39 -08:00
fsl-mph-dr-of.c USB: fsl-mph-dr-of: adjust for OF based clock lookup 2014-01-12 18:53:05 +01:00
fusbh200-hcd.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
fusbh200.h fusb200h: always compile in debugfs support 2013-12-03 10:31:21 -08:00
hwa-hc.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
imx21-dbg.c usb: kill DEBUG compile option 2013-12-03 10:34:33 -08:00
imx21-hcd.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
imx21-hcd.h usb: kill DEBUG compile option 2013-12-03 10:34:33 -08:00
isp116x-hcd.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
isp116x.h USB: isp116x: remove dependency on CONFIG_USB_DEBUG 2013-07-23 16:35:17 -07:00
isp1362-hcd.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
isp1362.h USB: isp1362: move debug files from proc to debugfs 2013-07-24 14:43:05 -07:00
isp1760-hcd.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
isp1760-hcd.h
isp1760-if.c USB: host: use dev_get_platdata() 2013-07-31 17:53:50 -07:00
Kconfig usb: ohci: remove ep93xx bus glue platform driver 2013-10-29 16:43:37 -07:00
Makefile usb: kill DEBUG compile option 2013-12-03 10:34:33 -08:00
octeon2-common.c
ohci-at91.c USB: fix: ohci-at91 mismerge build error 2014-01-07 09:30:48 -08:00
ohci-da8xx.c USB: ohci-da8xx: Use devm_*() functions 2013-12-18 16:35:11 -08:00
ohci-dbg.c ohci: remove conditional compilation 2013-12-03 10:25:22 -08:00
ohci-exynos.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ohci-hcd.c USB: OHCI: Properly handle OHCI controller suspend 2013-12-08 17:53:17 -08:00
ohci-hub.c ohci: no conditional debugging in root hub hadling 2013-12-03 10:25:22 -08:00
ohci-jz4740.c USB: ohci-jz4740: Use devm_*() functions 2013-12-18 16:35:11 -08:00
ohci-mem.c
ohci-nxp.c USB: ohci-nxp: Use devm_clk_get() 2013-12-18 16:36:10 -08:00
ohci-octeon.c USB: ohci-octeon: Use devm_ioremap_resource() 2013-12-18 16:36:11 -08:00
ohci-omap3.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ohci-omap.c USB: ohci-omap: use dev_err() instead of printk() 2013-12-18 16:32:41 -08:00
ohci-pci.c usb: ohci: use amd_chipset_type to filter for SB800 prefetch 2013-10-03 15:44:51 -07:00
ohci-platform.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ohci-ppc-of.c USB: ohci-ppc-of: Use devm_ioremap_resource() 2013-12-18 16:36:10 -08:00
ohci-ps3.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ohci-pxa27x.c USB: ohci-pxa27x:Use devm_*() functions 2013-12-18 16:35:10 -08:00
ohci-q.c ohci: kill ohci_vdbg 2013-12-03 10:25:22 -08:00
ohci-s3c2410.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ohci-sa1111.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ohci-sm501.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ohci-spear.c USB: ohci-spear: Use devm_ioremap_resource() 2013-12-18 16:36:11 -08:00
ohci-tilegx.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
ohci-tmio.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ohci.h ohci: kill ohci_vdbg 2013-12-03 10:25:22 -08:00
oxu210hp-hcd.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
oxu210hp.h
pci-quirks.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
pci-quirks.h usb: ohci: use amd_chipset_type to filter for SB800 prefetch 2013-10-03 15:44:51 -07:00
r8a66597-hcd.c ARM: driver updates for 3.14 2014-01-23 18:49:36 -08:00
r8a66597.h usb/host/r8a66597: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
sl811_cs.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
sl811-hcd.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
sl811.h USB: sl811: move debug files from proc to debugfs 2013-07-24 14:43:05 -07:00
ssb-hcd.c DMA-API: usb: ssb-hcd: replace dma_set_mask()+dma_set_coherent_mask() with new helper 2013-10-31 14:48:36 +00:00
u132-hcd.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
uhci-debug.c usb: kill DEBUG compile option 2013-12-03 10:34:33 -08:00
uhci-grlib.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
uhci-hcd.c usb: kill DEBUG compile option 2013-12-03 10:34:33 -08:00
uhci-hcd.h USB: UHCI: remove unused definition 2013-01-24 13:42:09 -08:00
uhci-hub.c USB/host: Bugfix: Return length of copied buffer in uhci_hub_control() 2013-10-07 00:07:17 -07:00
uhci-pci.c USB: remove DEFINE_PCI_DEVICE_TABLE macro 2013-12-04 16:58:47 -08:00
uhci-platform.c usb: hcd: move controller wakeup setting initialization to individual driver 2013-12-08 18:06:46 -08:00
uhci-q.c USB: UHCI: accept very late isochronous URBs 2013-09-25 17:05:34 -07:00
xhci-dbg.c Revert "xhci: replace xhci_read_64() with readq()" 2014-01-30 13:27:49 -08:00
xhci-ext-caps.h xhci: fix port BESL LPM capability checking 2013-08-27 08:54:42 -07:00
xhci-hub.c xhci: replace xhci_writel() with writel() 2013-12-02 12:59:49 -08:00
xhci-mem.c Revert "xhci: replace xhci_read_64() with readq()" 2014-01-30 13:27:49 -08:00
xhci-pci.c xhci: Fix resume issues on Renesas chips in Samsung laptops 2014-01-22 13:33:48 -08:00
xhci-plat.c usb: xhci: change enumeration scheme to 'new scheme' by default 2013-12-10 13:54:37 -08:00
xhci-ring.c Revert "usb: xhci: Link TRB must not occur within a USB payload burst" 2014-02-07 14:30:03 -08:00
xhci-trace.c xhci: add traces for debug messages in xhci_address_device() 2013-08-13 16:05:38 -07:00
xhci-trace.h xhci: fix sparse warning in xhci-trace.h 2013-12-02 12:59:45 -08:00
xhci.c Revert "xhci: Set scatter-gather limit to avoid failed block writes." 2014-02-07 14:30:02 -08:00
xhci.h Revert "xhci: Set scatter-gather limit to avoid failed block writes." 2014-02-07 14:30:02 -08:00