* Tony Lindgren tony@atomide.com [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);
}