On 09/06/2020 18:12, Tony Lindgren wrote:
- Tomi Valkeinen tomi.valkeinen@ti.com [200609 10:33]:
Use suspend_late and resume_early callbacks in DSS submodules to force runtime PM suspend and resume.
We use suspend_late callback so that omapdrm's system suspend callback is called first, as that will disable all the display outputs after which it's safe to force DSS into suspend.
I think we can avoid the pm_runtime_force use if we have omapdrm implement both .suspend and .suspend_late. In that case suspend would only disable the display outputs, then suspend_late would take care of switching off the lights and release the last PM runtime count after the children are done suspending.
I'm not sure how that can be done cleanly. omapdrm doesn't really see the DSS submodules. And even if it does, how can it "release the last PM runtime count"? With pm_runtime_force_suspend for each? That would be almost the same as this patch.
Also, if omapdrm can do the above, it could do it in the .suspend, after disabling the display outputs. I don't think there's need for suspend_late then.
Tomi