Re: [PATCH v6 8/8] Input: omap4 - pm runtime

Kevin Hilman
2010-09-30T13:51:25Z

Abraham Arce <x0066660@ti.com> 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

> Reviewed-by: Basak, Partha <p-basak2@ti.com>
> Signed-off-by: Abraham Arce <x0066660@ti.com>
> ---
> 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);