On 05/03/2020 09:27, Lokesh Vutla wrote: > omap_dm_timer_enable() restores the entire context(including counter) > based on 2 conditions: > - If get_context_loss_count is populated and context is lost. > - If get_context_loss_count is not populated update unconditionally. > > Case2 has a side effect of updating the counter register even though > context is not lost. When timer is configured in pwm mode, this is > causing undesired behaviour in the pwm period. > > Instead of using get_context_loss_count call back, implement cpu_pm > notifier with context save and restore support. And delete the > get_context_loss_count callback all together. > > Suggested-by: Tony Lindgren <tony@xxxxxxxxxxx> > Signed-off-by: Lokesh Vutla <lokeshvutla@xxxxxx> > [tony@xxxxxxxxxxx: removed pm_runtime calls from cpuidle calls] > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- [ ... ] > @@ -725,6 +728,12 @@ static int __maybe_unused omap_dm_timer_runtime_suspend(struct device *dev) > > atomic_set(&timer->enabled, 0); > > + if (timer->capability & OMAP_TIMER_ALWON || > + !timer->func_base) > + return 0; WARNING: suspect code indent for conditional statements (8, 12) #168: FILE: drivers/clocksource/timer-ti-dm.c:762: + if (timer->capability & OMAP_TIMER_ALWON || [...] + return 0; WARNING: Statements should start on a tabstop #170: FILE: drivers/clocksource/timer-ti-dm.c:764: + return 0; [ ... ] Mind to resend this patch with the warning fixed? Thanks -- Daniel -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog