On Wed, 5 Jul 2023 22:42:53 +0200 Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote: > Use the new PM macros for the suspend and resume functions to be > automatically dropped by the compiler when CONFIG_PM or > CONFIG_PM_SLEEP are disabled, without having to use #ifdef guards. > > This has the advantage of always compiling these functions in, > independently of any Kconfig option. Thanks to that, bugs and other > regressions are subsequently easier to catch. > > Note that the behaviour is slightly different than before; the original > code wrapped the suspend/resume with #ifdef CONFIG_PM guards, which > resulted in these functions being compiled in but never used when > CONFIG_PM_SLEEP was disabled. > > Now, those functions are only compiled in when CONFIG_PM_SLEEP is > enabled. > > Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > --- > drivers/i2c/busses/i2c-au1550.c | 15 +++------------ > 1 file changed, 3 insertions(+), 12 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-au1550.c b/drivers/i2c/busses/i2c-au1550.c > index e66c12ecf270..8e43f25c117e 100644 > --- a/drivers/i2c/busses/i2c-au1550.c > +++ b/drivers/i2c/busses/i2c-au1550.c > @@ -342,7 +342,6 @@ static void i2c_au1550_remove(struct platform_device *pdev) > i2c_au1550_disable(priv); > } > > -#ifdef CONFIG_PM > static int i2c_au1550_suspend(struct device *dev) > { > struct i2c_au1550_data *priv = dev_get_drvdata(dev); > @@ -361,21 +360,13 @@ static int i2c_au1550_resume(struct device *dev) > return 0; > } > > -static const struct dev_pm_ops i2c_au1550_pmops = { > - .suspend = i2c_au1550_suspend, > - .resume = i2c_au1550_resume, > -}; > - > -#define AU1XPSC_SMBUS_PMOPS (&i2c_au1550_pmops) > - > -#else > -#define AU1XPSC_SMBUS_PMOPS NULL > -#endif > +static DEFINE_SIMPLE_DEV_PM_OPS(i2c_au1550_pmops, > + i2c_au1550_suspend, i2c_au1550_resume); > > static struct platform_driver au1xpsc_smbus_driver = { > .driver = { > .name = "au1xpsc_smbus", > - .pm = AU1XPSC_SMBUS_PMOPS, > + .pm = pm_sleep_ptr(&i2c_au1550_pmops), > }, > .probe = i2c_au1550_probe, > .remove_new = i2c_au1550_remove,