mfd: stmfx: Remove #ifdef guards for PM related functions
authorPaul Cercueil <paul@crapouillou.net>
Sun, 23 Oct 2022 09:48:48 +0000 (10:48 +0100)
committerLee Jones <lee@kernel.org>
Wed, 7 Dec 2022 13:28:13 +0000 (13:28 +0000)
Use the new DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() macros
to handle the .suspend/.resume callbacks.

These macros allow the suspend and resume functions to be automatically
dropped by the compiler when CONFIG_SUSPEND is 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.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/mfd/stmfx.c
include/linux/mfd/stmfx.h

index 025b8761e50fb9c0a5decc2329a44b15a48cd27e..e281971ba54ed6e9b0bbe5659467a9da19db3ca0 100644 (file)
@@ -473,7 +473,6 @@ static void stmfx_remove(struct i2c_client *client)
        stmfx_chip_exit(client);
 }
 
-#ifdef CONFIG_PM_SLEEP
 static int stmfx_suspend(struct device *dev)
 {
        struct stmfx *stmfx = dev_get_drvdata(dev);
@@ -539,9 +538,8 @@ static int stmfx_resume(struct device *dev)
 
        return 0;
 }
-#endif
 
-static SIMPLE_DEV_PM_OPS(stmfx_dev_pm_ops, stmfx_suspend, stmfx_resume);
+static DEFINE_SIMPLE_DEV_PM_OPS(stmfx_dev_pm_ops, stmfx_suspend, stmfx_resume);
 
 static const struct of_device_id stmfx_of_match[] = {
        { .compatible = "st,stmfx-0300", },
@@ -553,7 +551,7 @@ static struct i2c_driver stmfx_driver = {
        .driver = {
                .name = "stmfx-core",
                .of_match_table = stmfx_of_match,
-               .pm = &stmfx_dev_pm_ops,
+               .pm = pm_sleep_ptr(&stmfx_dev_pm_ops),
        },
        .probe_new = stmfx_probe,
        .remove = stmfx_remove,
index 744dce63946e069f90f8efb2c8f190ba0c36a58e..967a2e486800d17556db8660ba4abb884317e937 100644 (file)
@@ -113,10 +113,8 @@ struct stmfx {
        struct irq_domain *irq_domain;
        struct mutex lock; /* IRQ bus lock */
        u8 irq_src;
-#ifdef CONFIG_PM
        u8 bkp_sysctrl;
        u8 bkp_irqoutpin;
-#endif
 };
 
 int stmfx_function_enable(struct stmfx *stmfx, u32 func);