linux_dsm_epyc7002/drivers/usb/host
Mathias Nyman 8f97250c21 xhci: Don't clear hub TT buffer on ep0 protocol stall
The default control endpoint ep0 can return a STALL indicating the
device does not support the control transfer requests. This is called
a protocol stall and does not halt the endpoint.

xHC behaves a bit different. Its internal endpoint state will always
be halted on any stall, even if the device side of the endpiont is not
halted. So we do need to issue the reset endpoint command to clear the
xHC host intenal endpoint halt state, but should not request the HS hub
to clear the TT buffer unless device side of endpoint is halted.

Clearing the hub TT buffer at protocol stall caused ep0 to become
unresponsive for some FS/LS devices behind HS hubs, and class drivers
failed to set the interface due to timeout:

usb 1-2.1: 1:1: usb_set_interface failed (-110)

Fixes: ef513be0a9 ("usb: xhci: Add Clear_TT_Buffer")
Cc: <stable@vger.kernel.org> # v5.3
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20200421140822.28233-4-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-21 16:27:38 +02:00
..
bcma-hcd.c
ehci-atmel.c
ehci-dbg.c
ehci-exynos.c usb: exynos: Rename Samsung and Exynos to lowercase 2020-01-09 10:53:38 +01:00
ehci-fsl.c
ehci-fsl.h
ehci-grlib.c
ehci-hcd.c
ehci-hub.c
ehci-mem.c
ehci-mv.c USB: EHCI: ehci-mv: use a unique bus name 2020-03-12 09:49:29 +01:00
ehci-mxc.c
ehci-npcm7xx.c
ehci-omap.c
ehci-orion.c
ehci-pci.c usb: host: ehci-pci: remove useless cast for driver.name 2020-02-19 11:10:27 +01:00
ehci-platform.c usb: host: ehci-platform: add a quirk to avoid stuck 2020-02-10 11:15:27 -08:00
ehci-pmcmsp.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
ehci-ppc-of.c
ehci-ps3.c
ehci-q.c
ehci-sched.c
ehci-sh.c
ehci-spear.c
ehci-st.c
ehci-sysfs.c
ehci-tegra.c USB: Replace zero-length array with flexible-array member 2020-02-23 19:24:51 +01:00
ehci-timer.c
ehci-xilinx-of.c
ehci.h USB: Replace zero-length array with flexible-array member 2020-02-23 19:24:51 +01:00
fhci-dbg.c
fhci-hcd.c usb: host: fhci-hcd: annotate PIPE_CONTROL switch case with fallthrough 2020-02-19 11:08:52 +01:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c
fhci.h
fotg210-hcd.c
fotg210.h USB: Replace zero-length array with flexible-array member 2020-02-23 19:24:51 +01:00
fsl-mph-dr-of.c
imx21-dbg.c
imx21-hcd.c
imx21-hcd.h
isp116x-hcd.c
isp116x.h
isp1362-hcd.c
isp1362.h
Kconfig usb: exynos: Rename Samsung and Exynos to lowercase 2020-01-09 10:53:38 +01:00
Makefile
max3421-hcd.c
ohci-at91.c
ohci-da8xx.c usb: ohci-da8xx: ensure error return on variable error is set 2020-01-08 17:34:18 +01:00
ohci-dbg.c
ohci-exynos.c usb: exynos: Rename Samsung and Exynos to lowercase 2020-01-09 10:53:38 +01:00
ohci-hcd.c
ohci-hub.c
ohci-mem.c
ohci-nxp.c
ohci-omap.c
ohci-pci.c usb: host: ohci-pci: remove useless cast for driver.name 2020-02-19 11:10:27 +01:00
ohci-platform.c
ohci-ppc-of.c
ohci-ps3.c
ohci-pxa27x.c
ohci-q.c
ohci-s3c2410.c
ohci-sa1111.c
ohci-sm501.c
ohci-spear.c
ohci-st.c
ohci-tmio.c
ohci.h USB: Replace zero-length array with flexible-array member 2020-02-23 19:24:51 +01:00
oxu210hp-hcd.c usb: host: oxu210hp-hcd: fix gcc warning 2020-01-08 16:58:36 +01:00
pci-quirks.c remove ioremap_nocache and devm_ioremap_nocache 2020-01-06 09:45:59 +01:00
pci-quirks.h
r8a66597-hcd.c
r8a66597.h
sl811_cs.c
sl811-hcd.c usb: host: sl811-hcd: remove useless cast for driver.name 2020-02-19 11:10:27 +01:00
sl811.h
ssb-hcd.c
u132-hcd.c
uhci-debug.c
uhci-grlib.c
uhci-hcd.c
uhci-hcd.h
uhci-hub.c
uhci-pci.c usb: host: uhci-pci: remove useless cast for driver.name 2020-02-19 11:10:27 +01:00
uhci-platform.c
uhci-q.c
xhci-dbg.c
xhci-dbgcap.c
xhci-dbgcap.h
xhci-dbgtty.c
xhci-debugfs.c
xhci-debugfs.h
xhci-ext-caps.c
xhci-ext-caps.h
xhci-histb.c usb: host: hisilicon: convert to devm_platform_get_and_ioremap_resource 2020-03-24 12:09:39 +01:00
xhci-hub.c xhci: prevent bus suspend if a roothub port detected a over-current condition 2020-04-21 16:27:38 +02:00
xhci-mem.c xhci: Wait until link state trainsits to U0 after setting USB_SS_PORT_LS_U0 2020-03-12 17:34:49 +01:00
xhci-mtk-sch.c
xhci-mtk.c
xhci-mtk.h USB: Replace zero-length array with flexible-array member 2020-02-23 19:24:51 +01:00
xhci-mvebu.c
xhci-mvebu.h
xhci-pci.c Merge 5.6-rc7 into usb-next 2020-03-23 08:04:08 +01:00
xhci-plat.c usb: host: xhci-plat: convert to devm_platform_get_and_ioremap_resource 2020-03-24 12:09:39 +01:00
xhci-plat.h
xhci-rcar.c
xhci-rcar.h
xhci-ring.c xhci: Don't clear hub TT buffer on ep0 protocol stall 2020-04-21 16:27:38 +02:00
xhci-tegra.c usb: xhci-tegra: Add OTG support 2020-03-19 14:18:57 +01:00
xhci-trace.c
xhci-trace.h xhci: Do not open code __print_symbolic() in xhci trace events 2020-03-10 17:47:40 +01:00
xhci.c xhci: Fix handling halted endpoint even if endpoint ring appears empty 2020-04-21 16:27:38 +02:00
xhci.h xhci: Fix handling halted endpoint even if endpoint ring appears empty 2020-04-21 16:27:38 +02:00