Input: gpio-keys - add shutdown callback
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 6 Feb 2019 00:44:07 +0000 (16:44 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 6 Feb 2019 17:59:24 +0000 (09:59 -0800)
On some platforms (e.g.: ARCH_BRCMSTB) it is possible to enter
"poweroff" while leaving some wake-up sources enabled such as key
presses in order to allow for the system to wake-up.

Wire up a .shutdown() callback which calls into the existing
gpio_keys_suspend() since the logic is essentially the same.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/gpio_keys.c

index 492a971..6cd199e 100644 (file)
@@ -1015,8 +1015,18 @@ static int __maybe_unused gpio_keys_resume(struct device *dev)
 
 static SIMPLE_DEV_PM_OPS(gpio_keys_pm_ops, gpio_keys_suspend, gpio_keys_resume);
 
+static void gpio_keys_shutdown(struct platform_device *pdev)
+{
+       int ret;
+
+       ret = gpio_keys_suspend(&pdev->dev);
+       if (ret)
+               dev_err(&pdev->dev, "failed to shutdown\n");
+}
+
 static struct platform_driver gpio_keys_device_driver = {
        .probe          = gpio_keys_probe,
+       .shutdown       = gpio_keys_shutdown,
        .driver         = {
                .name   = "gpio-keys",
                .pm     = &gpio_keys_pm_ops,