usb: dwc2: Add call_gadget() function call
authorGrigor Tovmasyan <Grigor.Tovmasyan@synopsys.com>
Wed, 24 Jan 2018 13:43:58 +0000 (17:43 +0400)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 13 Mar 2018 08:47:49 +0000 (10:47 +0200)
Added call_gadget() function call when entering to L1 state
to inform gadget that core is in L1 state.

Did the same thing when exiting from L1 state
to inform gadget that core is in L0 state.

Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc2/core_intr.c

index a8e4394..46b32ec 100644 (file)
@@ -381,6 +381,9 @@ static void dwc2_wakeup_from_lpm_l1(struct dwc2_hsotg *hsotg)
 
        /* Change to L0 state */
        hsotg->lx_state = DWC2_L0;
 
        /* Change to L0 state */
        hsotg->lx_state = DWC2_L0;
+
+       /* Inform gadget to exit from L1 */
+       call_gadget(hsotg, resume);
 }
 
 /*
 }
 
 /*
@@ -589,6 +592,9 @@ static void dwc2_handle_lpm_intr(struct dwc2_hsotg *hsotg)
                        hsotg->lx_state = DWC2_L1;
                        dev_dbg(hsotg->dev,
                                "Core is in L1 sleep glpmcfg=%08x\n", glpmcfg);
                        hsotg->lx_state = DWC2_L1;
                        dev_dbg(hsotg->dev,
                                "Core is in L1 sleep glpmcfg=%08x\n", glpmcfg);
+
+                       /* Inform gadget that we are in L1 state */
+                       call_gadget(hsotg, suspend);
                }
        }
 }
                }
        }
 }