[PATCH 0/2] usb: dwc3: recover USB3 link after controller power loss

From: Xu Yang

Date: Fri Nov 06 2026 - 06:24:14 EST


From: Xu Yang <xu.yang_2@xxxxxxx>

This series fixes a USB3 link recovery failure observed on an i.MX SoC
when the DWC3 host controller loses power during system suspend.

After power is restored, the USB3 port starts in the Disconnected
(RxDetect) state instead of retaining its previous Enabled (U3) state.
Testing on the i.MX SoC shows that the port takes about 2 ms after host
mode is restored to leave RxDetect and enter Polling.

If xHCI is reset while the port is still in RxDetect, the port does not
issue a Warm Reset. Since the USB3 device may still be in U3, the
subsequent LFPS.Polling attempts time out and the controller eventually
reports the device as disconnected.

The first patch adds a DWC3 xHCI resume quirk that waits for the port to
leave RxDetect before xHCI is reset. The second patch enables this quirk
for the affected i.MX8MP platform by setting needs_full_reinit.

With this delay, xHCI is reset after the port can enter Polling, allowing
a Warm Reset to be issued and the USB3 link to recover normally.

Xu Yang (2):
usb: dwc3: wait for the port to leave RxDetect before xHCI reset
usb: dwc3: imx8mp: set needs_full_reinit as true

drivers/usb/dwc3/dwc3-imx8mp.c | 1 +
drivers/usb/dwc3/host.c | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+)

--
2.34.1