diff mbox series

Input: gpio-keys - Add shutdown callback

Message ID 20190201192417.15037-1-f.fainelli@gmail.com (mailing list archive)
State Mainlined
Commit a5c5e50cce9db7b550691e3ae801ecd4c1e59787
Headers show
Series Input: gpio-keys - Add shutdown callback | expand

Commit Message

Florian Fainelli Feb. 1, 2019, 7:24 p.m. UTC
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>
---
 drivers/input/keyboard/gpio_keys.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Florian Fainelli Feb. 5, 2019, 10:02 p.m. UTC | #1
On 2/1/19 11:24 AM, Florian Fainelli wrote:
> 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>
> ---
>  drivers/input/keyboard/gpio_keys.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)

Any feedback on this?

> 
> diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
> index 492a971b95b5..6cd199e8a370 100644
> --- a/drivers/input/keyboard/gpio_keys.c
> +++ b/drivers/input/keyboard/gpio_keys.c
> @@ -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,
>
Dmitry Torokhov Feb. 6, 2019, 12:45 a.m. UTC | #2
On Tue, Feb 05, 2019 at 02:02:49PM -0800, Florian Fainelli wrote:
> On 2/1/19 11:24 AM, Florian Fainelli wrote:
> > 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>
> > ---
> >  drivers/input/keyboard/gpio_keys.c | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> 
> Any feedback on this?

OK, I'll take it. Hopefully it won't affect existing systems as the
change is unconditional.

Thanks.
diff mbox series

Patch

diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index 492a971b95b5..6cd199e8a370 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -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,