On Sun, Sep 25, 2022 at 06:27:46PM +0100, Jonathan Cameron wrote: > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > These newer PM macros allow the compiler to see what code it can remove > if !CONFIG_PM_SLEEP. This allows the removal of messy #ifdef barriers whilst > achieving the same result. > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Cc: Linus Walleij <linus.walleij@xxxxxxxxxx> This patch resulted in build errors. Building m68k:allmodconfig ... failed -------------- Error log: drivers/hwmon/gpio-fan.c: In function 'gpio_fan_suspend': drivers/hwmon/gpio-fan.c:565:27: error: 'struct gpio_fan_data' has no member named 'resume_speed' There was an #ifdef CONFIG_PM_SLEEP in struct gpio_fan_data which had to be dropped. I took care of that. Guenter > --- > drivers/hwmon/gpio-fan.c | 9 ++------- > 1 file changed, 2 insertions(+), 7 deletions(-) > > diff --git a/drivers/hwmon/gpio-fan.c b/drivers/hwmon/gpio-fan.c > index fbf3f5a4ecb6..b05aedd20b4f 100644 > --- a/drivers/hwmon/gpio-fan.c > +++ b/drivers/hwmon/gpio-fan.c > @@ -557,7 +557,6 @@ static void gpio_fan_shutdown(struct platform_device *pdev) > set_fan_speed(fan_data, 0); > } > > -#ifdef CONFIG_PM_SLEEP > static int gpio_fan_suspend(struct device *dev) > { > struct gpio_fan_data *fan_data = dev_get_drvdata(dev); > @@ -580,18 +579,14 @@ static int gpio_fan_resume(struct device *dev) > return 0; > } > > -static SIMPLE_DEV_PM_OPS(gpio_fan_pm, gpio_fan_suspend, gpio_fan_resume); > -#define GPIO_FAN_PM (&gpio_fan_pm) > -#else > -#define GPIO_FAN_PM NULL > -#endif > +static DEFINE_SIMPLE_DEV_PM_OPS(gpio_fan_pm, gpio_fan_suspend, gpio_fan_resume); > > static struct platform_driver gpio_fan_driver = { > .probe = gpio_fan_probe, > .shutdown = gpio_fan_shutdown, > .driver = { > .name = "gpio-fan", > - .pm = GPIO_FAN_PM, > + .pm = pm_sleep_ptr(&gpio_fan_pm), > .of_match_table = of_match_ptr(of_gpio_fan_match), > }, > };