Hey Jonathan, On Sun, Sep 25, 2022 at 04:57:17PM +0100, Jonathan Cameron wrote: > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > Includes using EXPORT_NS_GPL_DEV_PM_OPS() and the simplifications that > brings by allowing the compiler to remove unused struct dev_pm_ops > and callbacks without needing explicit __maybe_unused markings. > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Cc: Rui Miguel Silva <rui.silva@xxxxxxxxxx> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> Again, many thanks for making this changes. LGTM. Acked-by: Rui Miguel Silva <rui.silva@xxxxxxxxxx> Cheers, Rui > > -- > v2: Switch to Paul's more flexible approach to EXPORT_NS_GPL_DEV_PM_OPS() > Dropped Rui's tag on basis this is rather different from v1 due to > the different macro implementation. > --- > drivers/iio/gyro/fxas21002c_core.c | 21 ++++++++++----------- > drivers/iio/gyro/fxas21002c_i2c.c | 3 ++- > drivers/iio/gyro/fxas21002c_spi.c | 3 ++- > 3 files changed, 14 insertions(+), 13 deletions(-) > > diff --git a/drivers/iio/gyro/fxas21002c_core.c b/drivers/iio/gyro/fxas21002c_core.c > index a36d71d9e3ea..3ea1d4613080 100644 > --- a/drivers/iio/gyro/fxas21002c_core.c > +++ b/drivers/iio/gyro/fxas21002c_core.c > @@ -998,7 +998,7 @@ int fxas21002c_core_probe(struct device *dev, struct regmap *regmap, int irq, > > return ret; > } > -EXPORT_SYMBOL_GPL(fxas21002c_core_probe); > +EXPORT_SYMBOL_NS_GPL(fxas21002c_core_probe, IIO_FXAS21002C); > > void fxas21002c_core_remove(struct device *dev) > { > @@ -1009,9 +1009,9 @@ void fxas21002c_core_remove(struct device *dev) > pm_runtime_disable(dev); > pm_runtime_set_suspended(dev); > } > -EXPORT_SYMBOL_GPL(fxas21002c_core_remove); > +EXPORT_SYMBOL_NS_GPL(fxas21002c_core_remove, IIO_FXAS21002C); > > -static int __maybe_unused fxas21002c_suspend(struct device *dev) > +static int fxas21002c_suspend(struct device *dev) > { > struct fxas21002c_data *data = iio_priv(dev_get_drvdata(dev)); > > @@ -1021,7 +1021,7 @@ static int __maybe_unused fxas21002c_suspend(struct device *dev) > return 0; > } > > -static int __maybe_unused fxas21002c_resume(struct device *dev) > +static int fxas21002c_resume(struct device *dev) > { > struct fxas21002c_data *data = iio_priv(dev_get_drvdata(dev)); > int ret; > @@ -1033,26 +1033,25 @@ static int __maybe_unused fxas21002c_resume(struct device *dev) > return fxas21002c_mode_set(data, data->prev_mode); > } > > -static int __maybe_unused fxas21002c_runtime_suspend(struct device *dev) > +static int fxas21002c_runtime_suspend(struct device *dev) > { > struct fxas21002c_data *data = iio_priv(dev_get_drvdata(dev)); > > return fxas21002c_mode_set(data, FXAS21002C_MODE_READY); > } > > -static int __maybe_unused fxas21002c_runtime_resume(struct device *dev) > +static int fxas21002c_runtime_resume(struct device *dev) > { > struct fxas21002c_data *data = iio_priv(dev_get_drvdata(dev)); > > return fxas21002c_mode_set(data, FXAS21002C_MODE_ACTIVE); > } > > -const struct dev_pm_ops fxas21002c_pm_ops = { > - SET_SYSTEM_SLEEP_PM_OPS(fxas21002c_suspend, fxas21002c_resume) > - SET_RUNTIME_PM_OPS(fxas21002c_runtime_suspend, > - fxas21002c_runtime_resume, NULL) > +EXPORT_NS_GPL_DEV_PM_OPS(fxas21002c_pm_ops, IIO_FXAS21002C) = { > + SYSTEM_SLEEP_PM_OPS(fxas21002c_suspend, fxas21002c_resume) > + RUNTIME_PM_OPS(fxas21002c_runtime_suspend, fxas21002c_runtime_resume, > + NULL) > }; > -EXPORT_SYMBOL_GPL(fxas21002c_pm_ops); > > MODULE_AUTHOR("Rui Miguel Silva <rui.silva@xxxxxxxxxx>"); > MODULE_LICENSE("GPL v2"); > diff --git a/drivers/iio/gyro/fxas21002c_i2c.c b/drivers/iio/gyro/fxas21002c_i2c.c > index a7807fd97483..241401a9dfea 100644 > --- a/drivers/iio/gyro/fxas21002c_i2c.c > +++ b/drivers/iio/gyro/fxas21002c_i2c.c > @@ -55,7 +55,7 @@ MODULE_DEVICE_TABLE(of, fxas21002c_i2c_of_match); > static struct i2c_driver fxas21002c_i2c_driver = { > .driver = { > .name = "fxas21002c_i2c", > - .pm = &fxas21002c_pm_ops, > + .pm = pm_ptr(&fxas21002c_pm_ops), > .of_match_table = fxas21002c_i2c_of_match, > }, > .probe_new = fxas21002c_i2c_probe, > @@ -67,3 +67,4 @@ module_i2c_driver(fxas21002c_i2c_driver); > MODULE_AUTHOR("Rui Miguel Silva <rui.silva@xxxxxxxxxx>"); > MODULE_LICENSE("GPL v2"); > MODULE_DESCRIPTION("FXAS21002C I2C Gyro driver"); > +MODULE_IMPORT_NS(IIO_FXAS21002C); > diff --git a/drivers/iio/gyro/fxas21002c_spi.c b/drivers/iio/gyro/fxas21002c_spi.c > index c3ac169facf9..4f633826547c 100644 > --- a/drivers/iio/gyro/fxas21002c_spi.c > +++ b/drivers/iio/gyro/fxas21002c_spi.c > @@ -54,7 +54,7 @@ MODULE_DEVICE_TABLE(of, fxas21002c_spi_of_match); > static struct spi_driver fxas21002c_spi_driver = { > .driver = { > .name = "fxas21002c_spi", > - .pm = &fxas21002c_pm_ops, > + .pm = pm_ptr(&fxas21002c_pm_ops), > .of_match_table = fxas21002c_spi_of_match, > }, > .probe = fxas21002c_spi_probe, > @@ -66,3 +66,4 @@ module_spi_driver(fxas21002c_spi_driver); > MODULE_AUTHOR("Rui Miguel Silva <rui.silva@xxxxxxxxxx>"); > MODULE_LICENSE("GPL v2"); > MODULE_DESCRIPTION("FXAS21002C SPI Gyro driver"); > +MODULE_IMPORT_NS(IIO_FXAS21002C); > -- > 2.37.2 >