linux-hardened/drivers/usb/host
Maxime Ripard 1e7e4fb664 usb: XHCI: platform: Move the Marvell quirks after the enabling the clocks
The commit 9737479285 ("usb: host: xhci-plat: add support for the Armada
375/38x XHCI controllers") extended the xhci-plat driver to support the Armada
375/38x SoCs, mostly by adding a quirk configuring the MBUS window.

However, that quirk was run before the clock the controllers needs has been
enabled. This usually worked because the clock was first enabled by the
bootloader, and left as such until the driver is probe, where it tries to
access the MBUS configuration registers before enabling the clock.

Things get messy when EPROBE_DEFER is involved during the probe, since as part
of its error path, the driver will rightfully disable the clock. When the
driver will be reprobed, it will retry to access the MBUS registers, but this
time with the clock disabled, which hangs forever.

Fix this by running the quirks after the clock has been enabled by the driver.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: <stable@vger.kernel.org> # v3.16+
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-02-24 08:34:32 -08:00
..
whci usb: use %*pb[l] to print bitmaps including cpumasks and nodemasks 2015-02-13 21:21:38 -08:00
bcma-hcd.c treewide: Remove unnecessary BCMA_CORETABLE_END macro 2015-02-11 14:38:28 -08:00
ehci-atmel.c USB: host: ehci-atmel: Move global variables to private struct 2015-01-25 21:06:42 +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 usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ehci-fsl.h
ehci-grlib.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ehci-hcd.c USB: ehci-platform: Support ehci reset after resume quirk 2015-01-09 12:25:54 -08:00
ehci-hub.c ehci-hub: use HUB_CHAR_* 2015-01-25 21:01:11 +08:00
ehci-mem.c USB: EHCI: don't allocate hardware periodic table atomically by default 2014-07-09 16:16:07 -07:00
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 ehci-pci: disable for Intel MID platforms (update) 2015-02-03 15:28:31 -08:00
ehci-platform.c usb: ehci-platform: add support for multiple phys per controller 2015-01-25 21:05:10 +08:00
ehci-pmcmsp.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ehci-ppc-of.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ehci-ps3.c
ehci-q.c
ehci-sched.c USB: EHCI: adjust error return code 2015-01-09 09:58:49 -08:00
ehci-sead3.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ehci-sh.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -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 usb: host: ehci-tegra: request deferred probe when failing to get phy 2015-01-09 10:01:45 -08:00
ehci-tilegx.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
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 usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ehci.h USB: ehci-platform: Support ehci reset after resume quirk 2015-01-09 12:25:54 -08:00
fhci-dbg.c drivers/usb/host/fhci-dbg.c: remove unnecessary null test before debugfs_remove 2014-07-09 16:13:03 -07:00
fhci-hcd.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
fhci-hub.c fhci-hub: use HUB_CHAR_* 2015-01-25 21:01:11 +08:00
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c
fhci.h
fotg210-hcd.c fotg210-hcd: use HUB_CHAR_* 2015-01-25 21:01:12 +08: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 fusbh200-hcd: use HUB_CHAR_* 2015-01-25 21:01:12 +08: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 imx21-hcd: use HUB_CHAR_* 2015-01-25 21:01:12 +08:00
imx21-hcd.h
isp116x-hcd.c isp116x-hcd: use HUB_CHAR_* 2015-01-25 21:01:12 +08:00
isp116x.h
isp1362-hcd.c isp1362-hcd: use HUB_CHAR_* 2015-01-25 21:01:12 +08:00
isp1362.h
Kconfig usb: patches for v3.20 merge window 2015-02-04 11:03:20 -08:00
Makefile usb: isp1760: Move driver from drivers/usb/host/ to drivers/usb/isp1760/ 2015-01-27 09:39:38 -06:00
max3421-hcd.c max3421-hcd: use HUB_CHAR_* 2015-01-25 21:01:12 +08:00
ohci-at91.c USB: host: ohci-at91: Fix wake-up support 2015-01-25 21:06:42 +08:00
ohci-da8xx.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ohci-dbg.c USB: OHCI: fix bugs in debug routines 2014-07-17 17:05:07 -07:00
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 ohci-hub: use HUB_CHAR_* 2015-01-25 21:01:12 +08:00
ohci-jz4740.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ohci-mem.c USB: OHCI: add I/O watchdog for orphan TDs 2014-07-18 16:34:07 -07:00
ohci-nxp.c usb: host: drop owner assignment from platform_drivers 2014-10-20 16:21:49 +02:00
ohci-omap.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ohci-omap3.c
ohci-pci.c USB: OHCI: fix problem with global suspend on ATI controllers 2014-05-03 17:58:46 -04:00
ohci-platform.c usb: ohci-platform: add support for multiple phys per controller 2015-01-25 21:04:21 +08:00
ohci-ppc-of.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ohci-ps3.c
ohci-pxa27x.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
ohci-q.c USB: OHCI: add I/O watchdog for orphan TDs 2014-07-18 16:34:07 -07:00
ohci-s3c2410.c ohci-s3c2410: use HUB_CHAR_* 2015-01-25 21:01:13 +08:00
ohci-sa1111.c
ohci-sm501.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
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 usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ohci-tmio.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
ohci.h USB: OHCI: Eliminate platform-specific test in ohci.h 2014-11-03 15:38:17 -08:00
oxu210hp-hcd.c oxu210hp-hcd: use HUB_CHAR_* 2015-01-25 21:01:13 +08:00
oxu210hp.h
pci-quirks.c usb: host: pci_quirks: joing string literals 2015-01-31 09:05:06 -08:00
pci-quirks.h usb: pci_quirks: fix sparse 'symbol not declared' warning 2014-05-27 16:25:32 -07:00
r8a66597-hcd.c r8a66597-hcd: use HUB_CHAR_* 2015-01-25 21:01:13 +08:00
r8a66597.h
sl811-hcd.c sl811-hcd: use HUB_CHAR_* 2015-01-25 21:01:13 +08:00
sl811.h
sl811_cs.c usb: delete non-required instances of include <linux/init.h> 2014-01-08 15:01:39 -08:00
ssb-hcd.c treewide: Remove unnecessary SSB_DEVTABLE_END macro 2015-02-11 14:38:29 -08:00
u132-hcd.c u132-hcd: use HUB_CHAR_* 2015-01-25 21:01:13 +08:00
uhci-debug.c
uhci-grlib.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -08:00
uhci-hcd.c USB: UHCI: don't allocate frame list atomically 2014-07-09 16:16:07 -07:00
uhci-hcd.h
uhci-hub.c uhci-hub: use HUB_CHAR_* 2015-02-03 15:28:32 -08:00
uhci-pci.c
uhci-platform.c usb: host: drop owner assignment from platform_drivers 2015-01-09 12:31:53 -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 usb: host: xhci-plat: add support for the Armada 375/38x XHCI controllers 2014-05-27 15:40:40 -07:00
xhci-mvebu.h usb: host: xhci-plat: add support for the Armada 375/38x XHCI controllers 2014-05-27 15:40:40 -07:00
xhci-pci.c xhci: Add broken-streams quirk for Fresco Logic FL1000G xhci controllers 2015-01-09 09:58:49 -08:00
xhci-plat.c usb: XHCI: platform: Move the Marvell quirks after the enabling the clocks 2015-02-24 08:34:32 -08:00
xhci-rcar.c usb: host: xhci-plat: add support for the R-Car H2 and M2 xHCI controllers 2014-07-09 15:49:10 -07:00
xhci-rcar.h usb: host: xhci-plat: add support for the R-Car H2 and M2 xHCI controllers 2014-07-09 15:49:10 -07:00
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: Silence "xHCI xhci_drop_endpoint called with disabled ep ..." messages 2015-01-25 20:59:43 +08:00
xhci.h xhci: Print hcc params, version and quirks on init 2015-01-25 20:59:43 +08:00