static void dwc3_core_exit(struct dwc3 *dwc)
{
- dwc3_event_buffers_cleanup(dwc);
-
usb_phy_shutdown(dwc->usb2_phy);
usb_phy_shutdown(dwc->usb3_phy);
phy_exit(dwc->usb2_generic_phy);
dwc3_debugfs_exit(dwc);
dwc3_core_exit_mode(dwc);
+ dwc3_event_buffers_cleanup(dwc);
dwc3_core_exit(dwc);
dwc3_ulpi_exit(dwc);
break;
}
+ dwc3_event_buffers_cleanup(dwc);
+
+ /* Put the core into D3 state */
+ dwc3_set_usb_core_power(dwc, false);
+
dwc3_core_exit(dwc);
return 0;
unsigned long flags;
int ret;
+ /* Bring core to D0 state */
+ dwc3_set_usb_core_power(dwc, true);
+
ret = dwc3_core_init(dwc);
if (ret)
return ret;