Commit 1956149d authored by Andy Shevchenko's avatar Andy Shevchenko
Browse files

pinctrl: lynxpoint: Make use of pm_ptr()



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: default avatarPaul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/r/20230717172821.62827-6-andriy.shevchenko@linux.intel.com


Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
parent df660f66
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -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,
	},
};