linux/drivers/usb/dwc3
Udipto Goswami 1f069425f4 usb: dwc3: keep susphy enabled during exit to avoid controller faults
commit e1003aa7ec upstream.

On some platforms, switching USB roles from host to device can trigger
controller faults due to premature PHY power-down. This occurs when the
PHY is disabled too early during teardown, causing synchronization
issues between the PHY and controller.

Keep susphy enabled during dwc3_host_exit() and dwc3_gadget_exit()
ensures the PHY remains in a low-power state capable of handling
required commands during role switch.

Cc: stable <stable@kernel.org>
Fixes: 6d73572206 ("usb: dwc3: core: Prevent phy suspend during init")
Suggested-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Signed-off-by: Udipto Goswami <udipto.goswami@oss.qualcomm.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://patch.msgid.link/20251126054221.120638-1-udipto.goswami@oss.qualcomm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-01-02 12:57:14 +01:00
..
core.c drivers/usb/dwc3: fix PCI parent check 2025-11-09 10:56:25 +09:00
core.h usb: dwc3: core: Introduce glue callbacks for flattened implementations 2025-09-12 14:04:20 +02:00
debug.h usb: dwc3: Add trace event for dwc3_set_prtcap 2025-09-06 15:21:59 +02:00
debugfs.c usb: dwc3: Refactor dwc3_mode_show 2025-09-06 15:21:59 +02:00
drd.c usb: dwc3: core: Introduce glue callbacks for flattened implementations 2025-09-12 14:04:20 +02:00
dwc3-am62.c USB: dwc3: Use syscon_regmap_lookup_by_phandle_args 2025-02-14 09:29:32 +01:00
dwc3-exynos.c usb: dwc3-exynos: add support for ExynosAutov920 2025-05-21 13:12:43 +02:00
dwc3-generic-plat.c usb: dwc3: Don't call clk_bulk_disable_unprepare() twice 2025-10-13 09:37:10 +02:00
dwc3-haps.c usb: dwc3: haps: Constify the software node 2021-02-04 15:42:06 +01:00
dwc3-imx8mp.c usb: dwc3: imx8mp: fix device leak at unbind 2025-07-25 10:50:43 +02:00
dwc3-keystone.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
dwc3-meson-g12a.c usb: dwc3: meson-g12a: fix device leaks at unbind 2025-07-25 10:50:43 +02:00
dwc3-octeon.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
dwc3-of-simple.c usb: dwc3: of-simple: fix clock resource leak in dwc3_of_simple_probe 2026-01-02 12:57:14 +01:00
dwc3-omap.c usb: dwc3: omap: Fix devm_regulator_get_optional() error handling 2025-01-11 17:02:30 +01:00
dwc3-pci.c usb: dwc3: pci: Sort out the Intel device IDs 2025-11-09 10:56:57 +09:00
dwc3-qcom-legacy.c usb: dwc3: qcom: Snapshot driver for backwards compatibilty 2025-04-15 14:29:19 +02:00
dwc3-qcom.c usb: dwc3: qcom: Implement glue callbacks to facilitate runtime suspend 2025-09-12 14:04:20 +02:00
dwc3-rtk.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
dwc3-st.c usb: dwc3: Don't use %pK through printk 2025-03-14 09:17:30 +01:00
dwc3-xilinx.c usb: dwc3: xilinx: set coherency mode for AMD versal adaptive platform 2025-06-19 12:25:50 +02:00
ep0.c usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths 2025-11-21 15:15:48 +01:00
gadget.c usb: dwc3: keep susphy enabled during exit to avoid controller faults 2026-01-02 12:57:14 +01:00
gadget.h Merge 6.8-rc5 into usb-next 2024-02-19 09:13:29 +01:00
glue.h usb: dwc3: core: Don't touch resets and clocks 2025-04-15 14:29:19 +02:00
host.c usb: dwc3: keep susphy enabled during exit to avoid controller faults 2026-01-02 12:57:14 +01:00
io.h usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
Kconfig usb: dwc3: add generic driver to support flattened 2025-09-17 12:38:34 +02:00
Makefile usb: dwc3: add generic driver to support flattened 2025-09-17 12:38:34 +02:00
trace.c usb: dwc3: fix incorrect kernel-doc comment syntax in files 2021-04-02 15:20:51 +02:00
trace.h usb: dwc3: Add trace event for dwc3_set_prtcap 2025-09-06 15:21:59 +02:00
ulpi.c usb: dwc3: ulpi: Fix USB2.0 HS/FS/LS PHY suspend regression 2020-12-28 15:55:44 +01:00