Message ID | 20220807192038.1039771-4-jic23@kernel.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | PM: Introduce EXPORT_NS_GPL_DEV_PM_OPS() and use cases in IIO. | expand |
Hey Jonathan, On Sun, Aug 07, 2022 at 08:20:36PM +0100, Jonathan Cameron wrote: > From: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > 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@huawei.com> > Cc: Rui Miguel Silva <rui.silva@linaro.org> This looks a sane and good improvement, thanks. Acked-by: Rui Miguel Silva <rui.silva@linaro.org> Cheers, Rui > --- > drivers/iio/gyro/fxas21002c_core.c | 21 +++++++++------------ > drivers/iio/gyro/fxas21002c_i2c.c | 3 ++- > drivers/iio/gyro/fxas21002c_spi.c | 3 ++- > 3 files changed, 13 insertions(+), 14 deletions(-) > > diff --git a/drivers/iio/gyro/fxas21002c_core.c b/drivers/iio/gyro/fxas21002c_core.c > index a36d71d9e3ea..9aee9096363f 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,23 @@ 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_SYMBOL_GPL(fxas21002c_pm_ops); > +EXPORT_NS_GPL_DEV_PM_OPS(fxas21002c_pm_ops, fxas21002c_suspend, > + fxas21002c_resume, fxas21002c_runtime_suspend, > + fxas21002c_runtime_resume, NULL, IIO_FXAS21002C); > > MODULE_AUTHOR("Rui Miguel Silva <rui.silva@linaro.org>"); > 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@linaro.org>"); > 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@linaro.org>"); > MODULE_LICENSE("GPL v2"); > MODULE_DESCRIPTION("FXAS21002C SPI Gyro driver"); > +MODULE_IMPORT_NS(IIO_FXAS21002C); > -- > 2.37.1 >
diff --git a/drivers/iio/gyro/fxas21002c_core.c b/drivers/iio/gyro/fxas21002c_core.c index a36d71d9e3ea..9aee9096363f 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,23 @@ 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_SYMBOL_GPL(fxas21002c_pm_ops); +EXPORT_NS_GPL_DEV_PM_OPS(fxas21002c_pm_ops, fxas21002c_suspend, + fxas21002c_resume, fxas21002c_runtime_suspend, + fxas21002c_runtime_resume, NULL, IIO_FXAS21002C); MODULE_AUTHOR("Rui Miguel Silva <rui.silva@linaro.org>"); 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@linaro.org>"); 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@linaro.org>"); MODULE_LICENSE("GPL v2"); MODULE_DESCRIPTION("FXAS21002C SPI Gyro driver"); +MODULE_IMPORT_NS(IIO_FXAS21002C);