pinctrl: lynxpoint: Make use of pm_ptr()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 17 Jul 2023 17:28:16 +0000 (20:28 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 18 Aug 2023 16:42:37 +0000 (19:42 +0300)
Cleaning up the driver to use pm_ptr() and *_PM_OPS() macros that
make it simpler and allows the compiler to remove those functions
if built without CONFIG_PM and CONFIG_PM_SLEEP support.

The lp_gpio_resume() is also assigned to .thaw and .restore members.
This is not a problem as the function it enables input pins that
had been disabled by firmware and repetion of that doesn't change
the pin configuration, i.e. it is idempotent.

Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/r/20230717172821.62827-6-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/pinctrl/intel/pinctrl-lynxpoint.c

index 780c9ab..c3732a9 100644 (file)
@@ -877,9 +877,8 @@ static int lp_gpio_resume(struct device *dev)
 }
 
 static const struct dev_pm_ops lp_gpio_pm_ops = {
-       .runtime_suspend = lp_gpio_runtime_suspend,
-       .runtime_resume = lp_gpio_runtime_resume,
-       .resume = lp_gpio_resume,
+       SYSTEM_SLEEP_PM_OPS(NULL, lp_gpio_resume)
+       RUNTIME_PM_OPS(lp_gpio_runtime_suspend, lp_gpio_runtime_resume, NULL)
 };
 
 static const struct acpi_device_id lynxpoint_gpio_acpi_match[] = {
@@ -894,7 +893,7 @@ static struct platform_driver lp_gpio_driver = {
        .remove         = lp_gpio_remove,
        .driver         = {
                .name   = "lp_gpio",
-               .pm     = &lp_gpio_pm_ops,
+               .pm     = pm_ptr(&lp_gpio_pm_ops),
                .acpi_match_table = lynxpoint_gpio_acpi_match,
        },
 };