linux/drivers/usb/host
Wu Liang feng 314b41b16a USB: ehci-platform: Support ehci reset after resume quirk
The Rockchip rk3288 EHCI controller doesn't properly detect
the case when a device is removed during suspend. Specifically,
when usb resume from suspend, the EHCI controller maintaining
the USB state (FLAG_CF is 1, Current Connect Status is 1),
but a USB device (like a USB camera on rk3288) may have been
disconnected actually.

Let's add a quirk to force ehci to go into the
usb_root_hub_lost_power() path and reset after resume.
This should generally reset the whole controller and all
ports and initialize everything cleanly again, and bring
the devices back up.

As part of this, rename the "hibernation" paramter of
ehci_resume() to force_reset since hibernation is simply
another case where we can't trust the autodetected status
and need to force a reset of devices.

Signed-off-by: Wu Liang feng <wulf@rock-chips.com>
Reviewed-by: Julius Werner <jwerner@google.com>
Reviewed-by: Doug Anderson <dianders@google.com>
Reviewed-by: Tomasz Figa <tfiga@google.com>
Reviewed-by: Pawel Osciak <posciak@google.com>
Reviewed-by: Sonny Rao <sonnyrao@google.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Doug Anderson <dianders@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-01-09 12:25:54 -08:00
..
whci
bcma-hcd.c
ehci-atmel.c host: ehci-atmel: remove duplicate check on resource 2014-11-07 09:01:49 -08:00
ehci-dbg.c
ehci-exynos.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ehci-fsl.c host: ehci-fsl: remove duplicate check on resource 2014-11-07 09:01:51 -08:00
ehci-fsl.h
ehci-grlib.c
ehci-hcd.c USB: ehci-platform: Support ehci reset after resume quirk 2015-01-09 12:25:54 -08:00
ehci-hub.c usb: ehci: add ehci_port_power interface 2014-11-03 15:34:00 -08:00
ehci-mem.c
ehci-msm.c host: ehci-msm: remove duplicate check on resource 2014-11-07 09:01:50 -08:00
ehci-mv.c host: ehci-mv: remove duplicate check on resource 2014-11-07 09:01:50 -08:00
ehci-mxc.c host: ehci-mxc: remove duplicate check on resource 2014-11-07 09:01:50 -08:00
ehci-omap.c
ehci-orion.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ehci-pci.c USB / PM: Drop CONFIG_PM_RUNTIME from the USB core 2014-12-04 00:51:54 +01:00
ehci-platform.c USB: ehci-platform: Support ehci reset after resume quirk 2015-01-09 12:25:54 -08:00
ehci-pmcmsp.c
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c
ehci-sched.c
ehci-sead3.c host: ehci-sead3: fix NULL pointer dereference on resource 2014-11-07 09:00:51 -08:00
ehci-sh.c host: ehci-sh: remove duplicate check on resource 2014-11-07 09:01:50 -08:00
ehci-spear.c host: ehci-spear: remove duplicate check on resource 2014-11-07 09:01:51 -08:00
ehci-st.c usb: host: ehci-st: Add EHCI support for ST STB devices 2014-09-23 21:35:50 -07:00
ehci-sysfs.c treewide: fix typo in printk and Kconfig 2014-11-20 14:56:11 +01:00
ehci-tegra.c host: ehci-tegra: remove duplicate check on resource 2014-11-07 09:01:49 -08:00
ehci-tilegx.c
ehci-timer.c
ehci-w90x900.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ehci-xilinx-of.c drivers/usb/host/ehci-xilinx-of.c: Include "linux/of_irq.h" to avoid compiling error 2014-09-23 22:09:46 -07:00
ehci.h USB: ehci-platform: Support ehci reset after resume quirk 2015-01-09 12:25:54 -08:00
fhci-dbg.c
fhci-hcd.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c
fhci.h
fotg210-hcd.c treewide: fix typo in printk and Kconfig 2014-11-20 14:56:11 +01:00
fotg210.h fotg210: Use ehci_dbg_port struct 2014-11-07 09:02:38 -08:00
fsl-mph-dr-of.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
fusbh200-hcd.c treewide: fix typo in printk and Kconfig 2014-11-20 14:56:11 +01:00
fusbh200.h fusbh200: Use ehci_dbg_port struct 2014-11-07 09:02:38 -08:00
hwa-hc.c USB: HWA: fix a warning message 2014-11-03 15:26:15 -08:00
imx21-dbg.c
imx21-hcd.c USB: imx21-hcd: use %pad for dma_addr_t 2014-11-03 15:38:17 -08:00
imx21-hcd.h
isp116x-hcd.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
isp116x.h
isp1362-hcd.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
isp1362.h
isp1760-hcd.c usb: isp1760: Use setup_timer 2015-01-09 12:17:24 -08:00
isp1760-hcd.h
isp1760-if.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
Kconfig USB: host: Remove ehci-octeon and ohci-octeon drivers 2014-11-25 09:19:28 -08:00
Makefile USB: host: Remove ehci-octeon and ohci-octeon drivers 2014-11-25 09:19:28 -08:00
max3421-hcd.c usb: host: max3421-hcd: use time_after() 2015-01-09 11:37:18 -08:00
ohci-at91.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ohci-da8xx.c host: ohci-da8xx: remove duplicate check on resource 2014-11-07 09:01:49 -08:00
ohci-dbg.c
ohci-exynos.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ohci-hcd.c USB: host: Remove ehci-octeon and ohci-octeon drivers 2014-11-25 09:19:28 -08:00
ohci-hub.c usb: hub: rename khubd to hub_wq in documentation and comments 2014-09-23 22:33:19 -07:00
ohci-jz4740.c host: ohci-jz4740: remove duplicate check on resource 2014-11-07 09:01:50 -08:00
ohci-mem.c
ohci-nxp.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
ohci-omap3.c
ohci-omap.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ohci-pci.c
ohci-platform.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ohci-ppc-of.c
ohci-ps3.c
ohci-pxa27x.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ohci-q.c
ohci-s3c2410.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
ohci-sa1111.c
ohci-sm501.c
ohci-spear.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ohci-st.c usb: host: ohci-st: Add OHCI driver support for ST STB devices 2014-09-23 21:35:50 -07:00
ohci-tilegx.c
ohci-tmio.c
ohci.h USB: OHCI: Eliminate platform-specific test in ohci.h 2014-11-03 15:38:17 -08:00
oxu210hp-hcd.c usb: oxu210hp-hcd: Use setup_timer 2015-01-09 12:17:24 -08:00
oxu210hp.h
pci-quirks.c USB: PCI-quirks: Deletion of unnecessary checks before the function call "pci_dev_put" 2014-11-24 17:24:31 -08:00
pci-quirks.h
r8a66597-hcd.c usb: r8a66597-hcd: Use setup_timer 2015-01-09 12:17:23 -08:00
r8a66597.h
sl811_cs.c
sl811-hcd.c usb: sl811-hcd: Use setup_timer 2015-01-09 12:17:24 -08:00
sl811.h
ssb-hcd.c
u132-hcd.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
uhci-debug.c
uhci-grlib.c
uhci-hcd.c
uhci-hcd.h
uhci-hub.c
uhci-pci.c
uhci-platform.c host: uhci-platform: fix NULL pointer dereference on resource 2014-11-07 09:00:51 -08:00
uhci-q.c
xhci-dbg.c xhci: clean up work to remove unused parameters for functions in xhci-mem.c 2015-01-09 10:05:47 -08:00
xhci-ext-caps.h
xhci-hub.c Merge branch 'pm-runtime' 2014-12-08 20:00:44 +01:00
xhci-mem.c xhci: clean up work to remove unused parameters for functions in xhci-mem.c 2015-01-09 10:05:47 -08:00
xhci-mvebu.c
xhci-mvebu.h
xhci-pci.c usb: xhci: rework root port wake bits if controller isn't allowed to wakeup 2014-11-22 07:34:20 -08:00
xhci-plat.c Merge 3.18-rc7 into usb-next 2014-11-30 19:21:03 -08:00
xhci-rcar.c
xhci-rcar.h
xhci-ring.c xhci: Add completion code to the debug ouput of unhandled transfer events 2015-01-09 10:05:47 -08:00
xhci-trace.c xhci: Export symbols used by host-controller drivers 2014-10-03 14:44:45 -07:00
xhci-trace.h
xhci.c xhci: clean up work to remove unused parameters for functions in xhci-mem.c 2015-01-09 10:05:47 -08:00
xhci.h xhci: clean up work to remove unused parameters for functions in xhci-mem.c 2015-01-09 10:05:47 -08:00