usb: dwc2: host: add bus_suspend/bus_resume callback
authorGregory Herrero <gregory.herrero@intel.com>
Wed, 29 Apr 2015 20:09:13 +0000 (22:09 +0200)
committerFelipe Balbi <balbi@ti.com>
Wed, 29 Apr 2015 20:19:44 +0000 (15:19 -0500)
Update controller state to indicate suspend entry.

Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc2/hcd.c

index 1875f7ad8497938fcd5a646272ab7705fcb7dd58..780f298ec02d3f31094c4bdca19845e54f01dbe9 100644 (file)
@@ -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,
 };
 
 /*