linux/drivers/usb/host
Mathias Nyman a54408d0a0 xhci: fix 20000ms port resume timeout
A uncleared PLC (port link change) bit will prevent furuther port event
interrupts for that port. Leaving it uncleared caused get_port_status()
to timeout after 20000ms while waiting to get the final port event
interrupt for resume -> U0 state change.

This is a targeted fix for a specific case where we get a port resume event
racing with xhci resume. The port event interrupt handler notices xHC is
not yet running and bails out early, leaving PLC uncleared.

The whole xhci port resuming needs more attention, but while working on it
it anyways makes sense to always ensure PLC is cleared in get_port_status
before setting a new link state and waiting for its completion.

Cc: <stable@vger.kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-20 14:40:36 +02:00
..
whci whci: Remove deprecated create_singlethread_workqueue 2016-08-15 16:25:58 +02:00
bcma-hcd.c USB: bcma: drop Northstar PHY 2.0 initialization code 2016-09-27 12:20:17 +02:00
ehci-atmel.c
ehci-dbg.c usb: add CONFIG_USB_PCI for system have both PCI HW and non-PCI based USB HW 2017-03-17 13:16:56 +09:00
ehci-exynos.c usb: host: ehci-exynos: Handle return value of clk_prepare_enable 2017-06-13 10:48:24 +02:00
ehci-fsl.c usb: ehci: fsl: use bus->sysdev for DMA configuration 2017-03-23 08:20:21 +01:00
ehci-fsl.h
ehci-grlib.c
ehci-hcd.c usb: host: Remove remaining pci_pool in comments 2017-03-16 18:03:31 +09:00
ehci-hub.c fsl/usb: Workarourd for USB erratum-A005697 2016-12-05 15:13:58 +01:00
ehci-mem.c usb: ehci: use bus->sysdev for DMA configuration 2017-03-23 08:20:21 +01:00
ehci-msm.c usb: host: ehci-msm: Conditionally call ehci suspend/resume 2016-06-07 22:15:25 -07:00
ehci-mv.c
ehci-mxc.c
ehci-omap.c
ehci-orion.c usb: orion-ehci: Add support for the Armada 3700 2017-03-17 13:32:59 +09:00
ehci-pci.c USB: EHCI: merge all cases that disable the IO watchdog 2016-10-24 14:36:25 +02:00
ehci-platform.c USB: ehci-platform: fix companion-device leak 2017-05-17 11:52:44 +02:00
ehci-pmcmsp.c
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c usb: host: ehci: remove unnecessary max_packet() macro 2016-11-03 10:38:24 +02:00
ehci-sched.c usb: host: remove unnecessary null check 2017-05-17 12:20:53 +02:00
ehci-sh.c
ehci-spear.c
ehci-st.c usb: host: ehci-st: Inform the reset framework that our reset line may be shared 2016-06-30 07:44:21 +01:00
ehci-sysfs.c
ehci-tegra.c usb: host: ehci-tegra: Avoid getting the same reset twice 2016-06-07 22:15:25 -07:00
ehci-tilegx.c
ehci-timer.c usb: Make use of ktime_* comparison functions 2017-06-03 18:08:04 +09:00
ehci-w90x900.c USB: EHCI: ehci-w90x900: remove unuseful functions 2016-11-29 17:36:43 +01:00
ehci-xilinx-of.c
ehci.h fsl/usb: Workarourd for USB erratum-A005697 2016-12-05 15:13:58 +01:00
fhci-dbg.c
fhci-hcd.c usb: host: fhci-hcd: don't print on ENOMEM 2016-08-30 19:17:37 +02:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c
fhci.h
fotg210-hcd.c usb: Make use of ktime_* comparison functions 2017-06-03 18:08:04 +09:00
fotg210.h
fsl-mph-dr-of.c fsl/usb: Workarourd for USB erratum-A005697 2016-12-05 15:13:58 +01:00
hwa-hc.c
imx21-dbg.c
imx21-hcd.c
imx21-hcd.h
isp116x-hcd.c
isp116x.h
isp1362-hcd.c usb: Convert pr_warning to pr_warn 2016-11-03 10:38:36 +02:00
isp1362.h
Kconfig usb: host: ohci-omap3: Remove driver in favor of ohci-platform 2017-06-03 18:08:05 +09:00
Makefile usb: host: ohci-omap3: Remove driver in favor of ohci-platform 2017-06-03 18:08:05 +09:00
max3421-hcd.c usb: host: max3421-hcd: don't print on ENOMEM 2016-08-30 19:17:37 +02:00
ohci-at91.c usb: ohci-at91: Do not drop unhandled USB suspend control requests 2017-03-09 10:22:08 +01:00
ohci-da8xx.c USB: ohci: da8xx: Resume the entire host controller 2016-11-29 17:31:36 +01:00
ohci-dbg.c
ohci-exynos.c usb: host: ohci-exynos: Decrese node refcount on exynos_ehci_get_phy() error paths 2017-01-10 17:00:42 +01:00
ohci-hcd.c ohci-pci: add qemu quirk 2017-03-23 08:13:21 +01:00
ohci-hub.c ohci-hub: fix typo in dbg_port macro 2017-02-10 12:20:57 +01:00
ohci-mem.c USB: OHCI: use dma_pool_zalloc 2016-11-21 17:33:40 +01:00
ohci-nxp.c USB: OHCI: nxp: fix code warnings 2016-12-08 17:50:09 +01:00
ohci-omap.c USB: ohci-omap: defer probe if PHY is missing 2017-01-10 17:00:41 +01:00
ohci-pci.c ohci-pci: add qemu quirk 2017-03-23 08:13:21 +01:00
ohci-platform.c usb: host: ohci-platform: Add support for omap3 and later 2017-06-03 18:08:04 +09:00
ohci-ppc-of.c
ohci-ps3.c
ohci-pxa27x.c usb: host: ohci-pxa27x: Handle return value of clk_prepare_enable 2017-06-29 14:49:06 +02:00
ohci-q.c USB: OHCI: Don't mark EDs as ED_OPER if scheduling fails 2016-06-07 22:15:25 -07:00
ohci-s3c2410.c USB: OHCI: ohci-s3c2410: remove useless functions 2016-12-05 16:32:51 +01:00
ohci-sa1111.c usb: ohci-sa1111: remove mach/hardware.h include 2016-08-30 19:24:59 +02:00
ohci-sm501.c
ohci-spear.c
ohci-st.c usb: host: ohci-st: Inform the reset framework that our reset line may be shared 2016-06-30 07:44:20 +01:00
ohci-tilegx.c
ohci-tmio.c
ohci.h ohci-pci: add qemu quirk 2017-03-23 08:13:21 +01:00
oxu210hp-hcd.c usb: host: Remove remaining pci_pool in comments 2017-03-16 18:03:31 +09:00
oxu210hp.h
pci-quirks.c xhci: Bad Ethernet performance plugged in ASM1042A host 2017-07-20 14:40:35 +02:00
pci-quirks.h xhci: Bad Ethernet performance plugged in ASM1042A host 2017-07-20 14:40:35 +02:00
r8a66597-hcd.c usb: r8a66597-hcd: select a different endpoint on timeout 2017-05-17 11:52:44 +02:00
r8a66597.h
sl811_cs.c
sl811-hcd.c
sl811.h
ssb-hcd.c
u132-hcd.c
uhci-debug.c
uhci-grlib.c
uhci-hcd.c usb/uhci: Add support for Aspeed BMC SoCs 2017-05-25 14:30:13 +02:00
uhci-hcd.h usb/uhci: Add support for Aspeed BMC SoCs 2017-05-25 14:30:13 +02:00
uhci-hub.c
uhci-pci.c PM / core: Drop run_wake flag from struct dev_pm_info 2017-06-28 01:52:52 +02:00
uhci-platform.c usb/uhci: Add support for Aspeed BMC SoCs 2017-05-25 14:30:13 +02:00
uhci-q.c
xhci-dbg.c usb: xhci: remove xhci_dbg_ctx() 2017-04-08 12:17:42 +02:00
xhci-ext-caps.h usb: host: xhci: remove unneded semicolon 2017-01-25 10:59:06 +01:00
xhci-hub.c xhci: fix 20000ms port resume timeout 2017-07-20 14:40:36 +02:00
xhci-mem.c Merge 4.12-rc6 into usb-next 2017-06-20 10:16:07 +08:00
xhci-mtk-sch.c usb: host: xhci: purge GET_MAX_PACKET() 2016-11-03 10:38:22 +02:00
xhci-mtk.c usb: xhci: remove dummy extra_priv_size for size of xhci_hcd struct 2017-03-09 18:00:39 +01:00
xhci-mtk.h usb: xhci-mtk: add reference clock 2017-01-19 10:37:16 +01:00
xhci-mvebu.c
xhci-mvebu.h
xhci-pci.c xhci: Bad Ethernet performance plugged in ASM1042A host 2017-07-20 14:40:35 +02:00
xhci-plat.c usb: host: xhci-plat: propagate return value of platform_get_irq() 2017-05-18 15:19:42 +02:00
xhci-plat.h usb: host: xhci-plat: add resume_quirk() 2017-04-19 19:59:17 +02:00
xhci-rcar.c usb: host: xhci-plat: set resume_quirk() for R-Car controllers 2017-04-19 19:59:17 +02:00
xhci-rcar.h usb: host: xhci-plat: set resume_quirk() for R-Car controllers 2017-04-19 19:59:17 +02:00
xhci-ring.c xhci: Fix NULL pointer dereference when cleaning up streams for removed host 2017-07-20 14:40:35 +02:00
xhci-tegra.c usb: xhci: remove dummy extra_priv_size for size of xhci_hcd struct 2017-03-09 18:00:39 +01:00
xhci-trace.c
xhci-trace.h usb: xhci: add xhci_log_ring trace events 2017-04-08 12:17:41 +02:00
xhci.c xhci: Bad Ethernet performance plugged in ASM1042A host 2017-07-20 14:40:35 +02:00
xhci.h xhci: Bad Ethernet performance plugged in ASM1042A host 2017-07-20 14:40:35 +02:00