diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c index 688cf1c60e72..95d9de5c2832 100644 --- a/drivers/usb/dwc3/gadget.c +++ b/drivers/usb/dwc3/gadget.c @@ -2755,6 +2755,7 @@ static irqreturn_t dwc3_thread_interrupt(int irq, void *_dwc) spin_unlock_irqrestore(&dwc->lock, flags); + pm_runtime_put(dwc->dev); return ret; } @@ -2796,6 +2797,9 @@ static irqreturn_t dwc3_interrupt(int irq, void *_dwc) ret = status; } + if (ret == IRQ_WAKE_THREAD) + pm_runtime_get(dwc->dev); + return ret; }