On 23/11/2021 21:09:43+0000, Jonathan Cameron wrote: > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > 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@xxxxxxxxxx> Reviewed-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > Cc: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > Cc: Ludovic Desroches <ludovic.desroches@xxxxxxxxxxxxx> > --- > drivers/iio/adc/at91_adc.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c > index 5a7d3a3a5fa8..14a4735d72b5 100644 > --- a/drivers/iio/adc/at91_adc.c > +++ b/drivers/iio/adc/at91_adc.c > @@ -1234,8 +1234,7 @@ static int at91_adc_remove(struct platform_device *pdev) > return 0; > } > > -#ifdef CONFIG_PM_SLEEP > -static int at91_adc_suspend(struct device *dev) > +static __maybe_unused int at91_adc_suspend(struct device *dev) > { > struct iio_dev *idev = dev_get_drvdata(dev); > struct at91_adc_state *st = iio_priv(idev); > @@ -1246,7 +1245,7 @@ static int at91_adc_suspend(struct device *dev) > return 0; > } > > -static int at91_adc_resume(struct device *dev) > +static __maybe_unused int at91_adc_resume(struct device *dev) > { > struct iio_dev *idev = dev_get_drvdata(dev); > struct at91_adc_state *st = iio_priv(idev); > @@ -1256,7 +1255,6 @@ static int at91_adc_resume(struct device *dev) > > return 0; > } > -#endif > > static SIMPLE_DEV_PM_OPS(at91_adc_pm_ops, at91_adc_suspend, at91_adc_resume); > > @@ -1386,7 +1384,7 @@ static struct platform_driver at91_adc_driver = { > .driver = { > .name = DRIVER_NAME, > .of_match_table = at91_adc_dt_ids, > - .pm = &at91_adc_pm_ops, > + .pm = pm_ptr(&at91_adc_pm_ops), > }, > }; > > -- > 2.34.0 > -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com