* Tony Lindgren <tony@xxxxxxxxxxx> [210503 11:16]: > ..the use of pm_runtime_put_sync() like you suggested. I did a quick > test with the minimal change below and that works :) Seems like that's > probably the best minimal fix for the -rc cycle. Sorry I was mistaken, the patch below won't help for the omapdrm PM runtime state on suspend. I had patch "bus: ti-sysc: Fix am335x resume hang for usb otg module" applied, and that changes ti-sysc to get rid of the PM runtime calls during system suspend. The side effect is ti-sysc now ignores the module PM runtime state on suspend. This is pretty much what _od_suspend_noirq() was also doing. I think we still fix the dispc related issue too, otherwise the parent child_count will just keep increasing on each suspend. I check that again though. Regards, Tony > 8< ---------------- > diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c b/drivers/gpu/drm/omapdrm/dss/dispc.c > --- a/drivers/gpu/drm/omapdrm/dss/dispc.c > +++ b/drivers/gpu/drm/omapdrm/dss/dispc.c > @@ -664,7 +664,7 @@ void dispc_runtime_put(struct dispc_device *dispc) > > DSSDBG("dispc_runtime_put\n"); > > - r = pm_runtime_put_sync(&dispc->pdev->dev); > + r = pm_runtime_put(&dispc->pdev->dev); > WARN_ON(r < 0 && r != -ENOSYS); > } >