Re: [PATCH v3 1/3] pwm: make it possible to apply pwm changes in atomic context

Sean Young
2023-10-25T09:54:08Z

On Mon, Oct 23, 2023 at 02:34:17PM +0100, Daniel Thompson wrote:
> On Sun, Oct 22, 2023 at 11:46:22AM +0100, Sean Young wrote:
> > On Sat, Oct 21, 2023 at 11:08:22AM +0200, Hans de Goede wrote:
> > > On 10/19/23 12:51, Uwe Kleine-König wrote:
> > > > On Wed, Oct 18, 2023 at 03:57:48PM +0200, Hans de Goede wrote:
> > > >> On 10/17/23 11:17, Sean Young wrote:
> > > > I think it's very subjective if you consider this
> > > > churn or not.
> > >
> > > I consider it churn because I don't think adding a postfix
> > > for what is the default/expected behavior is a good idea
> > > (with GPIOs not sleeping is the expected behavior).
> > >
> > > I agree that this is very subjective and very much goes
> > > into the territory of bikeshedding. So please consider
> > > the above my 2 cents on this and lets leave it at that.
> >
> > You have a valid point. Let's focus on having descriptive function names.
>
> For a couple of days I've been trying to resist the bikeshedding (esp.
> given the changes to backlight are tiny) so I'll try to keep it as
> brief as I can:
>
> 1. I dislike the do_it() and do_it_cansleep() pairing. It is
> difficult to detect when a client driver calls do_it() by mistake.
> In fact a latent bug of this nature can only be detected by runtime
> testing with the small number of PWMs that do not support
> configuration from an atomic context.
>
> In contrast do_it() and do_it_atomic()[*] means that although
> incorrectly calling do_it() from an atomic context can be pretty
> catastrophic it is also trivially detected (with any PWM driver)
> simply by running with CONFIG_DEBUG_ATOMIC_SLEEP.
>
> No objections (beyond churn) to fully spelt out pairings such as
> do_it_cansleep() and do_it_atomic()[*]!

I must say I do like the look of this. Uwe, how do you feel about:
pwm_apply_cansleep() and pwm_apply_atomic()? I know we've talked about
pwm_apply_atomic in the past, however I think this this the best
option I've seen so far.

> 2. If there is an API rename can we make sure the patch contains no
> other changes (e.g. don't introduce any new API in the same patch).
> Seperating renames makes the patches easier to review!
> It makes each one smaller and easier to review!

Yes, this should have been separated out. Will fix for next version.

Thanks,

Sean