diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 4f3eb0ac7b53..9a00a2c7b87b 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1841,7 +1841,8 @@ static int dwc3_suspend_common(struct dwc3 *dwc, pm_message_t msg) dwc3_core_exit(dwc); break; default: - /* do nothing */ + if (!pm_runtime_suspended(dwc->dev)) + dwc3_core_exit(dwc); break; } @@ -1908,7 +1909,9 @@ static int dwc3_resume_common(struct dwc3 *dwc, pm_message_t msg) break; default: - /* do nothing */ + ret = dwc3_core_init_for_resume(dwc); + if (ret) + return ret; break; }