Re: [PATCH v2 4/6] pwm: omap-dmtimer: Fix pwm disabling sequence

From: Tony Lindgren
Date: Fri Mar 13 2020 - 11:51:09 EST


* Tony Lindgren <tony@xxxxxxxxxxx> [200313 15:35]:
> * Tony Lindgren <tony@xxxxxxxxxxx> [200312 00:59]:
> > * Lokesh Vutla <lokeshvutla@xxxxxx> [200311 04:14]:
> > > However, I see an issue with the patch itself as pm_runtime is not disabled
> > > after the pwm is stopped. Not sure how that could be nullified with this approach.
> >
> > Hmm yeah not sure what could be used to clear things
> > when the current cycle is completed unless there's
> > some interrupt for it.
>
> You could enable pm_runtime_use_autosuspend() for pwm use,
> then set the timeout to the cycle length, then in the
> runtime_suspend make sure the enable bit is cleared if
> requested.
>
> But this too seems inaccurate, it would be best to clear
> the enable bit on some cycle completion interrupt if
> such thing is available.

I think enabling pm_runtime_use_autosuspend() for pwm,
adding a flag for pwm_enabled, and blocking cpu_pm if
pwm_enabled is set might do the trick though. Then clear
pwm_enabled flag in runtime_suspend if set.

This depend on cpuidle respecting NOTIFY_BAD that I
fixed in the recent thread:

[PATCH 0/3] Block idle in gpio-omap with cpu_pm

Regards,

Tony