On Sat, Jul 22, 2023 at 1:51 PM 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> > > --- > Cc: Bartosz Golaszewski <brgl@xxxxxxxx> > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > --- > drivers/i2c/busses/i2c-davinci.c | 12 +++--------- > 1 file changed, 3 insertions(+), 9 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c > index 71b60778c643..52527189a7bf 100644 > --- a/drivers/i2c/busses/i2c-davinci.c > +++ b/drivers/i2c/busses/i2c-davinci.c > @@ -902,7 +902,6 @@ static void davinci_i2c_remove(struct platform_device *pdev) > pm_runtime_disable(dev->dev); > } > > -#ifdef CONFIG_PM > static int davinci_i2c_suspend(struct device *dev) > { > struct davinci_i2c_dev *i2c_dev = dev_get_drvdata(dev); > @@ -926,15 +925,10 @@ static int davinci_i2c_resume(struct device *dev) > static const struct dev_pm_ops davinci_i2c_pm = { > .suspend = davinci_i2c_suspend, > .resume = davinci_i2c_resume, > - SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, > - pm_runtime_force_resume) > + NOIRQ_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, > + pm_runtime_force_resume) > }; > > -#define davinci_i2c_pm_ops (&davinci_i2c_pm) > -#else > -#define davinci_i2c_pm_ops NULL > -#endif > - > static const struct platform_device_id davinci_i2c_driver_ids[] = { > { .name = "i2c_davinci", }, > { /* sentinel */ } > @@ -947,7 +941,7 @@ static struct platform_driver davinci_i2c_driver = { > .id_table = davinci_i2c_driver_ids, > .driver = { > .name = "i2c_davinci", > - .pm = davinci_i2c_pm_ops, > + .pm = pm_sleep_ptr(&davinci_i2c_pm), > .of_match_table = davinci_i2c_of_match, > }, > }; > -- > 2.40.1 > Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>