[PATCH 0/5] usb: dwc3: xilinx: error handling and teardown fixes
From: Radhey Shyam Pandey
Date: Mon Aug 10 2026 - 13:48:11 EST
This series improves error handling, resource teardown, and system sleep
PM robustness in the dwc3-xilinx glue driver for ZynqMP and Versal
platforms.
Patch 1 switches probe to device_get_match_data() and adds the direct
property.h include instead of relying on of.h for that helper.
Patch 2 introduces struct dwc3_xlnx_platdata and moves ZynqMP and
Versal setup behind plat->init(). The struct also defines an exit
callback slot used by the later teardown patches.
Patch 3 fixes system suspend and resume PHY handling: suspend now
powers off the PHY before phy_exit() and propagates errors; resume
disables clocks if PHY reinitialization fails after they were enabled.
Patch 4 fixes ZynqMP init error paths. Reset handles are saved in
driver private data and fall-through error labels re-assert only the
resets already released before unwinding the PHY when init fails
partway through reset deassert or PHY setup.
Patch 5 adds dwc3_xlnx_exit_zynqmp(), wires it as the ZynqMP platform
exit callback, and calls plat->exit() from probe error paths after a
successful plat->init() and from remove()/shutdown.
Radhey Shyam Pandey (5):
usb: dwc3: xilinx: use device_get_match_data() in probe
usb: dwc3: xilinx: add platform data struct with init callback
usb: dwc3: xilinx: fix system suspend and resume PHY handling
usb: dwc3: xilinx: re-assert resets on ZynqMP init error paths
usb: dwc3: xilinx: unwind ZynqMP platform init on probe failure and
remove
drivers/usb/dwc3/dwc3-xilinx.c | 132 +++++++++++++++++++++++++--------
1 file changed, 100 insertions(+), 32 deletions(-)
base-commit: 6b8c8af514d739d0335f5579b585e02babe8a727
--
2.43.0