diff options
| -rw-r--r-- | drivers/usb/dwc3/gadget.c | 12 |
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) |
