pinctrl: at91: Switch to use DEFINE_NOIRQ_DEV_PM_OPS() helper
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 17 Jul 2023 17:28:17 +0000 (20:28 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 21 Aug 2023 15:58:10 +0000 (18:58 +0300)
Since pm.h provides a helper for system no-IRQ PM callbacks,
switch the driver to use it instead of open coded variant.

With that switch pm_ptr() to pm_sleep_ptr() as the above
mentioned callbacks are only used for system sleep.

The use of the pm_sleep_ptr() macro allows the compiler
to always see the dev_pm_ops structure and related functions,
while still allowing the unused code to be removed, without
the need for the __maybe_unused markings.

Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20230717172821.62827-7-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/pinctrl/pinctrl-at91.c

index 39956d8..608f55c 100644 (file)
@@ -1657,7 +1657,7 @@ static int gpio_irq_set_wake(struct irq_data *d, unsigned state)
        return 0;
 }
 
-static int __maybe_unused at91_gpio_suspend(struct device *dev)
+static int at91_gpio_suspend(struct device *dev)
 {
        struct at91_gpio_chip *at91_chip = dev_get_drvdata(dev);
        void __iomem *pio = at91_chip->regbase;
@@ -1675,7 +1675,7 @@ static int __maybe_unused at91_gpio_suspend(struct device *dev)
        return 0;
 }
 
-static int __maybe_unused at91_gpio_resume(struct device *dev)
+static int at91_gpio_resume(struct device *dev)
 {
        struct at91_gpio_chip *at91_chip = dev_get_drvdata(dev);
        void __iomem *pio = at91_chip->regbase;
@@ -1903,15 +1903,13 @@ static int at91_gpio_probe(struct platform_device *pdev)
        return 0;
 }
 
-static const struct dev_pm_ops at91_gpio_pm_ops = {
-       NOIRQ_SYSTEM_SLEEP_PM_OPS(at91_gpio_suspend, at91_gpio_resume)
-};
+static DEFINE_NOIRQ_DEV_PM_OPS(at91_gpio_pm_ops, at91_gpio_suspend, at91_gpio_resume);
 
 static struct platform_driver at91_gpio_driver = {
        .driver = {
                .name = "gpio-at91",
                .of_match_table = at91_gpio_of_match,
-               .pm = pm_ptr(&at91_gpio_pm_ops),
+               .pm = pm_sleep_ptr(&at91_gpio_pm_ops),
        },
        .probe = at91_gpio_probe,
 };