Use the newly introduced pm_ptr() macro, and mark the suspend/resume functions __maybe_unused. These functions can then be moved outside the CONFIG_PM_SUSPEND block, and the compiler can then process them and detect build failures independently of the config. If unused, they will simply be discarded by the compiler. Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx> --- drivers/usb/musb/da8xx.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/usb/musb/da8xx.c b/drivers/usb/musb/da8xx.c index 1c023c0091c4..7a13463006e3 100644 --- a/drivers/usb/musb/da8xx.c +++ b/drivers/usb/musb/da8xx.c @@ -598,8 +598,7 @@ static int da8xx_remove(struct platform_device *pdev) return 0; } -#ifdef CONFIG_PM_SLEEP -static int da8xx_suspend(struct device *dev) +static int __maybe_unused da8xx_suspend(struct device *dev) { int ret; struct da8xx_glue *glue = dev_get_drvdata(dev); @@ -612,7 +611,7 @@ static int da8xx_suspend(struct device *dev) return 0; } -static int da8xx_resume(struct device *dev) +static int __maybe_unused da8xx_resume(struct device *dev) { int ret; struct da8xx_glue *glue = dev_get_drvdata(dev); @@ -622,7 +621,6 @@ static int da8xx_resume(struct device *dev) return ret; return phy_power_on(glue->phy); } -#endif static SIMPLE_DEV_PM_OPS(da8xx_pm_ops, da8xx_suspend, da8xx_resume); @@ -641,7 +639,7 @@ static struct platform_driver da8xx_driver = { .remove = da8xx_remove, .driver = { .name = "musb-da8xx", - .pm = &da8xx_pm_ops, + .pm = pm_ptr(&da8xx_pm_ops), .of_match_table = of_match_ptr(da8xx_id_table), }, }; -- 2.28.0