linux/drivers/usb/dwc3
Thinh Nguyen cc5bfc4e16 usb: dwc3: Set SUSPENDENABLE soon after phy init
After phy initialization, some phy operations can only be executed while
in lower P states. Ensure GUSB3PIPECTL.SUSPENDENABLE and
GUSB2PHYCFG.SUSPHY are set soon after initialization to avoid blocking
phy ops.

Previously the SUSPENDENABLE bits are only set after the controller
initialization, which may not happen right away if there's no gadget
driver or xhci driver bound. Revise this to clear SUSPENDENABLE bits
only when there's mode switching (change in GCTL.PRTCAPDIR).

Fixes: 6d73572206 ("usb: dwc3: core: Prevent phy suspend during init")
Cc: stable <stable@kernel.org>
Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/633aef0afee7d56d2316f7cc3e1b2a6d518a8cc9.1738280911.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-03-04 06:26:58 +01:00
..
core.c usb: dwc3: Set SUSPENDENABLE soon after phy init 2025-03-04 06:26:58 +01:00
core.h usb: dwc3: Set SUSPENDENABLE soon after phy init 2025-03-04 06:26:58 +01:00
debug.h
debugfs.c
drd.c usb: dwc3: Set SUSPENDENABLE soon after phy init 2025-03-04 06:26:58 +01:00
dwc3-am62.c Merge 6.13-rc7 into usb-next 2025-01-13 06:11:06 +01:00
dwc3-exynos.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
dwc3-haps.c
dwc3-imx8mp.c usb: dwc3: imx8mp: fix software node kernel dump 2024-12-04 16:26:30 +01: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: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +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: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02: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: add support for the Intel Panther Lake 2024-07-03 16:06:32 +02:00
dwc3-qcom.c usb: Use (of|device)_property_present() for non-boolean properties 2024-11-05 13:29:26 +01: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: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() 2025-01-11 17:02:30 +01:00
dwc3-xilinx.c usb: dwc3: xilinx: make sure pipe clock is deselected in usb2 only mode 2024-12-04 16:26:54 +01:00
ep0.c usb: dwc3: ep0: Don't clear ep0 DWC3_EP_TRANSFER_STARTED 2024-11-16 09:04:56 +01:00
gadget.c usb: dwc3: gadget: Prevent irq storm when TH re-executes 2025-03-03 10:19:26 +01:00
gadget.h
host.c usb: dwc3: Correct some typos in comments 2024-10-04 15:08:53 +02:00
io.h
Kconfig usb: use "prompt" instead of "bool" for choice prompts 2024-11-04 17:53:09 +09:00
Makefile
trace.c
trace.h
ulpi.c