Messages in this thread | | | Subject | Re: [PATCH 1/5] drm/omap: Fix suspend resume regression after platform data removal | From | Grygorii Strashko <> | Date | Wed, 17 Jun 2020 15:49:59 +0300 |
| |
On 17/06/2020 09:04, Tomi Valkeinen wrote: > On 16/06/2020 19:56, Grygorii Strashko wrote: >> >> >> On 16/06/2020 18:30, Tony Lindgren wrote: >>> * Tomi Valkeinen <tomi.valkeinen@ti.com> [200616 13:02]: >>>> On 11/06/2020 17:00, Grygorii Strashko wrote: >>>>> I think, suspend might be fixed if all devices, which are now child of ti-sysc, will do >>>>> pm_runtime_force_xxx() calls at noirq suspend stage by adding: >>>>> >>>>> SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, >>>>> pm_runtime_force_resume) >>>>> >>>>> Am I missing smth? >>>> >>>> Isn't this almost exactly the same my patch does? I just used suspend_late >>>> and resume_early. Is noirq phase better than late & early? >>> >>> Well up to you as far as I'm concerned. The noirq phase comes with serious >>> limitations, for let's say i2c bus usage if needed. Probably also harder >>> to debug for suspend and resume. >> >> Unfortunately, you can't use PM runtime force API at .suspend() stage as pm_runtime_get will still work and >> there is no sync between suspend and pm_runtime. >> The PM runtime force API can be used only during late/noirq as at this time pm_runtime is disabled. > > Yes, but which one... Do you know what the diff is with late/noirq from driver's perspective? I guess noirq is atomic context, late is nto?
noirq is *not* atomic, jus IRQs (non-wakeup) will be disabled (disbale_irq())
> > Dispc's suspend uses synchronize_irq(), so that rules out noirq. Although the call is not needed if using noirq version, so that could also be managed with small change. But I wonder if there's any benefit in using noirq versus late.
-- Best regards, grygorii
| |