Re: [PATCH 1/3] iio: temperature: mlx90632 Add runtime powermanagement modes

From: Jonathan Cameron
Date: Sun Sep 04 2022 - 10:38:03 EST


On Sat, 3 Sep 2022 14:05:38 +0200
Crt Mori <cmo@xxxxxxxxxxx> wrote:

> On Fri, 2 Sept 2022 at 20:39, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
> >
> > On Fri, Sep 2, 2022 at 8:59 PM Crt Mori <cmo@xxxxxxxxxxx> wrote:
> > > On Fri, 2 Sept 2022 at 17:28, Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote:
> > > > On Fri, Sep 2, 2022 at 4:13 PM <cmo@xxxxxxxxxxx> wrote:
> > > > > + if (current_powerstatus == MLX90632_PWR_STATUS_SLEEP_STEP)
> > > > > + return mlx90632_pwr_set_sleep_step(data->regmap);
> > > >
> > > > > + else
> > > >
> > > > Redundant.
> > > >
> > > No, the powermode changes among the type.
> >
> > Yes. 'else' keyword is always redundant in the
> >
> > if (...)
> > return / break / continue / goto
> > else
> >
> > cases.
> >
> In this case current power mode of the sensor is halt, so the else is
> needed to set it to continuous mode, which means I can't just remove
> the else here because this statement restores the power mode before
> this function was entered (and changed powermode for the setup).
>
> > > > > + return mlx90632_pwr_continuous(data->regmap);
> >
> > ...
> >
> > > > > +static int __maybe_unused mlx90632_pm_runtime_suspend(struct device *dev)
> > > >
> > > > No __maybe_unused, use pm_ptr() / pm_sleep_ptr() below.
> > > >
> > > Care to explain a bit more about this? I just followed what other
> > > drivers have...
> >
> > And other drivers have what I said, but it's a new feature.
> > If you run `git log --no-merges --grep 'pm_ptr' -- drivers/iio
> > include/linux/` and read the history it will explain the case.
> >
> Thanks for the hint.

The relevant EXPORT_ for this particular case isn't upstream yet
We had a proposal on IIO list, but there was a better one as part of
cleaning this up for MFD. I haven't checked if there is a suitable
immutable branch for that patch yet...

Jonathan