usb: dwc3: core: Fix broken system suspend/resume on AM437x
Subsystems (2)
PATCH 1/1 usb: dwc3: core: Fix broken system suspend/resume on AM437x
On TI's AM437x, the DWC3 controller looses state after a system suspend/resume. We are re-initializing the controller but we miss restoring the PRTCAP register. This causes USB host to break on AM437x after a system suspend/resume.
Fix this by restoring the PRTCAP register on system resume.
Signed-off-by Roger Quadros <[email protected]>
--- drivers/usb/dwc3/core.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/usb/dwc3/core.c +2 -0
@@ -1374,6 +1374,7 @@ static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg)if (ret)return ret; +dwc3_set_prtcap (dwc,DWC3_GCTL_PRTCAP_DEVICE );spin_lock_irqsave (&dwc->lock, flags);dwc3_gadget_resume (dwc);spin_unlock_irqrestore (&dwc->lock, flags);
@@ -1384,6 +1385,7 @@ static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg) ret =dwc3_core_init (dwc);if (ret)return ret; +dwc3_set_prtcap (dwc,DWC3_GCTL_PRTCAP_HOST ); }break ;case DWC3_GCTL_PRTCAP_OTG :