Hi, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> writes: >> After going through runtime_suspend/runtime_resume >> cycle once we would be left with an unbalanced >> pm_runtime_get() call. Fix that by making sure that >> we try to suspend right after resuming so things are >> balanced and device can runtime_suspend again. >> >> Signed-off-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> >> --- >> drivers/usb/dwc3/core.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c >> index 946643157b78..35d092456bec 100644 >> --- a/drivers/usb/dwc3/core.c >> +++ b/drivers/usb/dwc3/core.c >> @@ -1192,6 +1192,7 @@ static int dwc3_runtime_resume(struct device *dev) >> } >> >> pm_runtime_mark_last_busy(dev); >> + pm_runtime_put(dev); >> >> return 0; >> } > > This may be correct, but it certainly looks odd. For example, it > wouldn't work right if you ever called pm_runtime_resume() instead of > pm_runtime_get(). well, we don't. But is there an alternative for this? -- balbi
Attachment:
signature.asc
Description: PGP signature