kernel_samsung_a53x/drivers/usb/host
Udipto Goswami 9eafb23160 UPSTREAM: usb: xhci: Implement xhci_handshake_check_state() helper
In some situations where xhci removal happens parallel to xhci_handshake,
we encounter a scenario where the xhci_handshake can't succeed, and it
polls until timeout.

If xhci_handshake runs until timeout it can on some platforms result in
a long wait which might lead to a watchdog timeout.

Add a helper that checks xhci status during the handshake, and exits if
set state is entered. Use this helper in places where xhci_handshake is
called unlocked and has a long timeout. For example  xhci command timeout
and xhci reset.

[commit message and code comment rewording -Mathias]

Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20231019102924.2797346-18-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Bug: 383443034
Change-Id: Iec54af32dcf6b07075e3f084dba914fc43635ee6
(cherry picked from commit 6ccb83d6c4972ebe6ae49de5eba051de3638362c)
Signed-off-by: Faisal Hassan <quic_faisalh@quicinc.com>
2025-01-19 19:55:41 +01:00
..
bcma-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-atmel.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-brcm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-dbg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-exynos.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-fsl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-fsl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-grlib.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-hub.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-mem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-mv.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-mxc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-npcm7xx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-omap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-orion.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-pci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-platform.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-pmcmsp.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-ppc-of.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-ps3.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-q.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-sched.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-sh.c usb: ehci-hcd: fix call balance of clocks handling routines 2025-01-02 17:00:49 +01:00
ehci-spear.c usb: ehci-spear: fix call balance of sehci clk handling routines 2024-12-17 13:24:17 +01:00
ehci-st.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-tegra.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-timer.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci-xilinx-of.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ehci.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fhci-dbg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fhci-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fhci-hub.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fhci-mem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fhci-q.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fhci-sched.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fhci-tds.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fhci.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fotg210-hcd.c usb: fotg210-hcd: delete an incorrect bounds test 2024-11-18 12:12:02 +01:00
fotg210.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fsl-mph-dr-of.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
imx21-dbg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
imx21-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
imx21-hcd.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isp116x-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isp116x.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isp1362-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isp1362.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
max3421-hcd.c usb: host: max3421-hcd: Correctly abort a USB request. 2025-01-02 17:00:49 +01:00
ohci-at91.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-da8xx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-dbg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-exynos.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-hcd.c usb: ohci: Prevent missed ohci interrupts 2024-11-19 11:32:48 +01:00
ohci-hub.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-mem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-nxp.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-omap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-pci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-platform.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-ppc-of.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-ps3.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-pxa27x.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-q.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-s3c2410.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-sa1111.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-sm501.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-spear.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-st.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci-tmio.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ohci.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
oxu210hp-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci-quirks.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci-quirks.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
r8a66597-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
r8a66597.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sl811-hcd.c usb: sl811-hcd: only defined function checkdone if QUIRK2 is defined 2024-11-19 09:23:15 +01:00
sl811.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sl811_cs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ssb-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
u132-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uhci-debug.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uhci-grlib.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uhci-hcd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uhci-hcd.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uhci-hub.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uhci-pci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uhci-platform.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uhci-q.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-dbg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-dbgcap.c xhci: dbc: Fix STALL transfer event handling 2024-12-17 13:24:34 +01:00
xhci-dbgcap.h xhci: dbc: Fix STALL transfer event handling 2024-12-17 13:24:34 +01:00
xhci-dbgtty.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-debugfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-debugfs.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-ext-caps.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-ext-caps.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-exynos.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-exynos.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-histb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-hub.c xhci: cleanup xhci_hub_control port references 2024-11-08 11:26:12 +01:00
xhci-mem.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-mtk-sch.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-mtk.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-mtk.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-mvebu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-mvebu.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-pci-renesas.c Revert "usb: renesas-xhci: Remove renesas_xhci_pci_exit()" 2024-11-24 00:23:14 +01:00
xhci-pci.c Revert "usb: renesas-xhci: Remove renesas_xhci_pci_exit()" 2024-11-24 00:23:14 +01:00
xhci-pci.h Revert "usb: renesas-xhci: Remove renesas_xhci_pci_exit()" 2024-11-24 00:23:14 +01:00
xhci-plat.c usb: host: xhci-plat: Add support for XHCI_SG_TRB_CACHE_SIZE_QUIRK 2024-11-18 12:13:26 +01:00
xhci-plat.h usb: xhci-plat: Don't include xhci.h 2024-11-19 11:32:48 +01:00
xhci-rcar.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-rcar.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-ring.c UPSTREAM: usb: xhci: Implement xhci_handshake_check_state() helper 2025-01-19 19:55:41 +01:00
xhci-tegra.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-trace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci-trace.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
xhci.c UPSTREAM: usb: xhci: Implement xhci_handshake_check_state() helper 2025-01-19 19:55:41 +01:00
xhci.h UPSTREAM: usb: xhci: Implement xhci_handshake_check_state() helper 2025-01-19 19:55:41 +01:00