summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/dwc3/gadget.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index f9ded176b77d..c615d5917867 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1512,11 +1512,9 @@ static void dwc3_gadget_wakeup_work(struct work_struct *w)
dwc = container_of(w, struct dwc3, wakeup_work);
- if (atomic_read(&dwc->in_lpm)) {
- pm_runtime_get_sync(dwc->dev);
- dbg_event(0xFF, "Gdgwake gsyn",
- atomic_read(&dwc->dev->power.usage_count));
- }
+ pm_runtime_get_sync(dwc->dev);
+ dbg_event(0xFF, "Gdgwake gsyn",
+ atomic_read(&dwc->dev->power.usage_count));
ret = dwc3_gadget_wakeup_int(dwc);
@@ -1524,6 +1522,10 @@ static void dwc3_gadget_wakeup_work(struct work_struct *w)
pr_err("Remote wakeup failed. ret = %d.\n", ret);
else
pr_debug("Remote wakeup succeeded.\n");
+
+ pm_runtime_put_noidle(dwc->dev);
+ dbg_event(0xFF, "Gdgwake put",
+ atomic_read(&dwc->dev->power.usage_count));
}
static int dwc3_gadget_wakeup_int(struct dwc3 *dwc)