|
|
@@ -2313,6 +2313,22 @@ static void _dwc2_hcd_stop(struct usb_hcd *hcd)
|
|
|
usleep_range(1000, 3000);
|
|
|
}
|
|
|
|
|
|
+static int _dwc2_hcd_suspend(struct usb_hcd *hcd)
|
|
|
+{
|
|
|
+ struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
|
|
|
+
|
|
|
+ hsotg->lx_state = DWC2_L2;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static int _dwc2_hcd_resume(struct usb_hcd *hcd)
|
|
|
+{
|
|
|
+ struct dwc2_hsotg *hsotg = dwc2_hcd_to_hsotg(hcd);
|
|
|
+
|
|
|
+ hsotg->lx_state = DWC2_L0;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
/* Returns the current frame number */
|
|
|
static int _dwc2_hcd_get_frame_number(struct usb_hcd *hcd)
|
|
|
{
|
|
|
@@ -2683,6 +2699,9 @@ static struct hc_driver dwc2_hc_driver = {
|
|
|
.hub_status_data = _dwc2_hcd_hub_status_data,
|
|
|
.hub_control = _dwc2_hcd_hub_control,
|
|
|
.clear_tt_buffer_complete = _dwc2_hcd_clear_tt_buffer_complete,
|
|
|
+
|
|
|
+ .bus_suspend = _dwc2_hcd_suspend,
|
|
|
+ .bus_resume = _dwc2_hcd_resume,
|
|
|
};
|
|
|
|
|
|
/*
|