Message ID | 20221020185047.1001522-5-paul@crapouillou.net |
---|---|
State | New |
Headers | show |
Series | watchdog: Remove #ifdef guards for PM functions | expand |
On Thu, Oct 20, 2022 at 07:50:47PM +0100, Paul Cercueil wrote: > Use the pm_ptr() macro to handle the .suspend/.resume callbacks. > > This macro allows the suspend and resume functions to be automatically > dropped by the compiler when CONFIG_SUSPEND is disabled, without having > to use #ifdef guards. Not using #ifdef guards means that the code is > always compiled independently of any Kconfig option, and thanks to that > bugs and regressions are easier to catch. > > Signed-off-by: Paul Cercueil <paul@crapouillou.net> Reviewed-by: Guenter Roeck <linux@roeck-us.net> > --- > drivers/watchdog/kempld_wdt.c | 11 ++--------- > 1 file changed, 2 insertions(+), 9 deletions(-) > > diff --git a/drivers/watchdog/kempld_wdt.c b/drivers/watchdog/kempld_wdt.c > index 40bd518ed873..e6c7a2906680 100644 > --- a/drivers/watchdog/kempld_wdt.c > +++ b/drivers/watchdog/kempld_wdt.c > @@ -75,9 +75,7 @@ struct kempld_wdt_data { > struct watchdog_device wdd; > unsigned int pretimeout; > struct kempld_wdt_stage stage[KEMPLD_WDT_MAX_STAGES]; > -#ifdef CONFIG_PM > u8 pm_status_store; > -#endif > }; > > #define DEFAULT_TIMEOUT 30 /* seconds */ > @@ -495,7 +493,6 @@ static int kempld_wdt_probe(struct platform_device *pdev) > return 0; > } > > -#ifdef CONFIG_PM > /* Disable watchdog if it is active during suspend */ > static int kempld_wdt_suspend(struct platform_device *pdev, > pm_message_t message) > @@ -531,18 +528,14 @@ static int kempld_wdt_resume(struct platform_device *pdev) > else > return kempld_wdt_stop(wdd); > } > -#else > -#define kempld_wdt_suspend NULL > -#define kempld_wdt_resume NULL > -#endif > > static struct platform_driver kempld_wdt_driver = { > .driver = { > .name = "kempld-wdt", > }, > .probe = kempld_wdt_probe, > - .suspend = kempld_wdt_suspend, > - .resume = kempld_wdt_resume, > + .suspend = pm_ptr(kempld_wdt_suspend), > + .resume = pm_ptr(kempld_wdt_resume), > }; > > module_platform_driver(kempld_wdt_driver); > -- > 2.35.1 >
diff --git a/drivers/watchdog/kempld_wdt.c b/drivers/watchdog/kempld_wdt.c index 40bd518ed873..e6c7a2906680 100644 --- a/drivers/watchdog/kempld_wdt.c +++ b/drivers/watchdog/kempld_wdt.c @@ -75,9 +75,7 @@ struct kempld_wdt_data { struct watchdog_device wdd; unsigned int pretimeout; struct kempld_wdt_stage stage[KEMPLD_WDT_MAX_STAGES]; -#ifdef CONFIG_PM u8 pm_status_store; -#endif }; #define DEFAULT_TIMEOUT 30 /* seconds */ @@ -495,7 +493,6 @@ static int kempld_wdt_probe(struct platform_device *pdev) return 0; } -#ifdef CONFIG_PM /* Disable watchdog if it is active during suspend */ static int kempld_wdt_suspend(struct platform_device *pdev, pm_message_t message) @@ -531,18 +528,14 @@ static int kempld_wdt_resume(struct platform_device *pdev) else return kempld_wdt_stop(wdd); } -#else -#define kempld_wdt_suspend NULL -#define kempld_wdt_resume NULL -#endif static struct platform_driver kempld_wdt_driver = { .driver = { .name = "kempld-wdt", }, .probe = kempld_wdt_probe, - .suspend = kempld_wdt_suspend, - .resume = kempld_wdt_resume, + .suspend = pm_ptr(kempld_wdt_suspend), + .resume = pm_ptr(kempld_wdt_resume), }; module_platform_driver(kempld_wdt_driver);
Use the pm_ptr() macro to handle the .suspend/.resume callbacks. This macro allows the suspend and resume functions to be automatically dropped by the compiler when CONFIG_SUSPEND is disabled, without having to use #ifdef guards. Not using #ifdef guards means that the code is always compiled independently of any Kconfig option, and thanks to that bugs and regressions are easier to catch. Signed-off-by: Paul Cercueil <paul@crapouillou.net> --- drivers/watchdog/kempld_wdt.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-)