diff mbox series

[02/49] iio:accel:da280: Switch from CONFIG_PM_SLEEP guards to pm_ptr() / __maybe_unused

Message ID 20211123211019.2271440-3-jic23@kernel.org (mailing list archive)
State Superseded
Headers show
Series iio: Tree wide switch from CONFIG_PM* to __maybe_unused etc. | expand

Commit Message

Jonathan Cameron Nov. 23, 2021, 9:09 p.m. UTC
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Letting the compiler remove these functions when the kernel is built
without CONFIG_PM_SLEEP support is simpler and less error prone than the
use of #ifdef based config guards.

Removing instances of this approach from IIO also stops them being
copied into new drivers.

The pm_ptr() macro only removes the reference if CONFIG_PM is not
set. It is possible for CONFIG_PM=y without CONFIG_SLEEP, so this
will not always remove the pm_ops structure.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 drivers/iio/accel/da280.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Paul Cercueil Nov. 23, 2021, 10:17 p.m. UTC | #1
Hi,

Le mar., nov. 23 2021 at 21:09:32 +0000, Jonathan Cameron 
<jic23@kernel.org> a écrit :
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> Letting the compiler remove these functions when the kernel is built
> without CONFIG_PM_SLEEP support is simpler and less error prone than 
> the
> use of #ifdef based config guards.
> 
> Removing instances of this approach from IIO also stops them being
> copied into new drivers.
> 
> The pm_ptr() macro only removes the reference if CONFIG_PM is not
> set. It is possible for CONFIG_PM=y without CONFIG_SLEEP, so this
> will not always remove the pm_ops structure.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

No pm_ptr() for this one?

-Paul

> ---
>  drivers/iio/accel/da280.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/accel/da280.c b/drivers/iio/accel/da280.c
> index 9633bdae5fd4..91ac478891ce 100644
> --- a/drivers/iio/accel/da280.c
> +++ b/drivers/iio/accel/da280.c
> @@ -153,17 +153,15 @@ static int da280_probe(struct i2c_client 
> *client,
>  	return devm_iio_device_register(&client->dev, indio_dev);
>  }
> 
> -#ifdef CONFIG_PM_SLEEP
> -static int da280_suspend(struct device *dev)
> +static __maybe_unused int da280_suspend(struct device *dev)
>  {
>  	return da280_enable(to_i2c_client(dev), false);
>  }
> 
> -static int da280_resume(struct device *dev)
> +static __maybe_unused int da280_resume(struct device *dev)
>  {
>  	return da280_enable(to_i2c_client(dev), true);
>  }
> -#endif
> 
>  static SIMPLE_DEV_PM_OPS(da280_pm_ops, da280_suspend, da280_resume);
> 
> --
> 2.34.0
>
Jonathan Cameron Nov. 24, 2021, 9:48 a.m. UTC | #2
On Tue, 23 Nov 2021 22:17:52 +0000
Paul Cercueil <paul@crapouillou.net> wrote:

> Hi,
> 
> Le mar., nov. 23 2021 at 21:09:32 +0000, Jonathan Cameron 
> <jic23@kernel.org> a écrit :
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > 
> > Letting the compiler remove these functions when the kernel is built
> > without CONFIG_PM_SLEEP support is simpler and less error prone than 
> > the
> > use of #ifdef based config guards.
> > 
> > Removing instances of this approach from IIO also stops them being
> > copied into new drivers.
> > 
> > The pm_ptr() macro only removes the reference if CONFIG_PM is not
> > set. It is possible for CONFIG_PM=y without CONFIG_SLEEP, so this
> > will not always remove the pm_ops structure.
> > 
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>  
> 
> No pm_ptr() for this one?
> 

Gah. I changed my mind about this half way through doing this and
decided to use it throughout rather than just in places that had
defined the pm_ops out by hand.

Missed this one in the update!  Anyhow, easy fix :)

Thanks,

Jonathan

> -Paul
> 
> > ---
> >  drivers/iio/accel/da280.c | 6 ++----
> >  1 file changed, 2 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/iio/accel/da280.c b/drivers/iio/accel/da280.c
> > index 9633bdae5fd4..91ac478891ce 100644
> > --- a/drivers/iio/accel/da280.c
> > +++ b/drivers/iio/accel/da280.c
> > @@ -153,17 +153,15 @@ static int da280_probe(struct i2c_client 
> > *client,
> >  	return devm_iio_device_register(&client->dev, indio_dev);
> >  }
> > 
> > -#ifdef CONFIG_PM_SLEEP
> > -static int da280_suspend(struct device *dev)
> > +static __maybe_unused int da280_suspend(struct device *dev)
> >  {
> >  	return da280_enable(to_i2c_client(dev), false);
> >  }
> > 
> > -static int da280_resume(struct device *dev)
> > +static __maybe_unused int da280_resume(struct device *dev)
> >  {
> >  	return da280_enable(to_i2c_client(dev), true);
> >  }
> > -#endif
> > 
> >  static SIMPLE_DEV_PM_OPS(da280_pm_ops, da280_suspend, da280_resume);
> > 
> > --
> > 2.34.0
> >   
> 
>
diff mbox series

Patch

diff --git a/drivers/iio/accel/da280.c b/drivers/iio/accel/da280.c
index 9633bdae5fd4..91ac478891ce 100644
--- a/drivers/iio/accel/da280.c
+++ b/drivers/iio/accel/da280.c
@@ -153,17 +153,15 @@  static int da280_probe(struct i2c_client *client,
 	return devm_iio_device_register(&client->dev, indio_dev);
 }
 
-#ifdef CONFIG_PM_SLEEP
-static int da280_suspend(struct device *dev)
+static __maybe_unused int da280_suspend(struct device *dev)
 {
 	return da280_enable(to_i2c_client(dev), false);
 }
 
-static int da280_resume(struct device *dev)
+static __maybe_unused int da280_resume(struct device *dev)
 {
 	return da280_enable(to_i2c_client(dev), true);
 }
-#endif
 
 static SIMPLE_DEV_PM_OPS(da280_pm_ops, da280_suspend, da280_resume);