Re: [PATCH v6 8/8] Input: omap4 - pm runtime
From: Kevin Hilman <hidden>
Date: 2010-09-30 13:51:35
Also in:
linux-omap
Abraham Arce [off-list ref] writes:
Enable pm runtime in driver
So power is enabled on probe and cut on _remove(). Did you consider doing any more fine grained PM for this device? For example, cutting power after some inactivity timer and re-enabling on a keypress/interrupt? Kevin
quoted hunk
Reviewed-by: Basak, Partha <redacted> Signed-off-by: Abraham Arce <redacted> --- drivers/input/keyboard/omap4-keypad.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c index 45bd097..ed47e9a 100644 --- a/drivers/input/keyboard/omap4-keypad.c +++ b/drivers/input/keyboard/omap4-keypad.c@@ -29,6 +29,7 @@ #include <linux/io.h> #include <linux/input.h> #include <linux/slab.h> +#include <linux/pm_runtime.h> #include <plat/omap4-keypad.h>@@ -239,6 +240,9 @@ static int __devinit omap4_keypad_probe(struct platform_device *pdev) matrix_keypad_build_keymap(pdata->keymap_data, row_shift, input_dev->keycode, input_dev->keybit); + pm_runtime_enable(&pdev->dev); + pm_runtime_get_sync(&pdev->dev); + omap4_keypad_config(keypad_data); error = request_irq(keypad_data->irq, omap4_keypad_interrupt,@@ -277,6 +281,9 @@ static int __devexit omap4_keypad_remove(struct platform_device *pdev) struct omap4_keypad *keypad_data = platform_get_drvdata(pdev); struct resource *res; + pm_runtime_put_sync(&pdev->dev); + pm_runtime_disable(&pdev->dev); + free_irq(keypad_data->irq, keypad_data); input_unregister_device(keypad_data->input);