]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: mpc8xxx: switch to using DEFINE_RUNTIME_DEV_PM_OPS()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 4 Sep 2024 14:07:06 +0000 (16:07 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 6 Sep 2024 06:50:48 +0000 (08:50 +0200)
Use the preferred API for assigning system sleep pm callbacks in drivers.

Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240904140706.70359-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-mpc8xxx.c

index e084e08f543873cf402c9d625c0266e3ae721023..685ec31db409d4aecabb684713c5c3d7948363a3 100644 (file)
@@ -17,6 +17,8 @@
 #include <linux/mod_devicetable.h>
 #include <linux/of.h>
 #include <linux/platform_device.h>
+#include <linux/pm.h>
+#include <linux/pm_runtime.h>
 #include <linux/property.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
@@ -431,30 +433,28 @@ static void mpc8xxx_remove(struct platform_device *pdev)
        }
 }
 
-#ifdef CONFIG_PM
-static int mpc8xxx_suspend(struct platform_device *pdev, pm_message_t state)
+static int mpc8xxx_suspend(struct device *dev)
 {
-       struct mpc8xxx_gpio_chip *mpc8xxx_gc = platform_get_drvdata(pdev);
+       struct mpc8xxx_gpio_chip *mpc8xxx_gc = dev_get_drvdata(dev);
 
-       if (mpc8xxx_gc->irqn && device_may_wakeup(&pdev->dev))
+       if (mpc8xxx_gc->irqn && device_may_wakeup(dev))
                enable_irq_wake(mpc8xxx_gc->irqn);
 
        return 0;
 }
 
-static int mpc8xxx_resume(struct platform_device *pdev)
+static int mpc8xxx_resume(struct device *dev)
 {
-       struct mpc8xxx_gpio_chip *mpc8xxx_gc = platform_get_drvdata(pdev);
+       struct mpc8xxx_gpio_chip *mpc8xxx_gc = dev_get_drvdata(dev);
 
-       if (mpc8xxx_gc->irqn && device_may_wakeup(&pdev->dev))
+       if (mpc8xxx_gc->irqn && device_may_wakeup(dev))
                disable_irq_wake(mpc8xxx_gc->irqn);
 
        return 0;
 }
-#else
-#define mpc8xxx_suspend NULL
-#define mpc8xxx_resume NULL
-#endif
+
+static DEFINE_RUNTIME_DEV_PM_OPS(mpc8xx_pm_ops,
+                                mpc8xxx_suspend, mpc8xxx_resume, NULL);
 
 #ifdef CONFIG_ACPI
 static const struct acpi_device_id gpio_acpi_ids[] = {
@@ -467,12 +467,11 @@ MODULE_DEVICE_TABLE(acpi, gpio_acpi_ids);
 static struct platform_driver mpc8xxx_plat_driver = {
        .probe          = mpc8xxx_probe,
        .remove_new     = mpc8xxx_remove,
-       .suspend        = mpc8xxx_suspend,
-       .resume         = mpc8xxx_resume,
        .driver         = {
                .name = "gpio-mpc8xxx",
                .of_match_table = mpc8xxx_gpio_ids,
                .acpi_match_table = ACPI_PTR(gpio_acpi_ids),
+               .pm = pm_ptr(&mpc8xx_pm_ops),
        },
 };