Kevin,
> -----Original Message-----
> From: linux-input-ow...@vger.kernel.org [mailto:linux-input-
> ow...@vger.kernel.org] On Behalf Of Kevin Hilman
> Sent: Thursday, September 30, 2010 7:21 PM
> To: Arce, Abraham
> Cc: linux-in...@vger.kernel.org; linux-omap@vger.kernel.org
> Subject: Re: [PATCH v6 8/8] Input: omap4 - pm runtime
> 
> Abraham Arce <x0066...@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?
My idea is that the clock needs to be on to get interrupts (OMAP4 the control 
is at module level and  ick/fclk level control is difficult). So disabling will 
prevent interrupts. 
The keypad is in wakeup domain which is always on. So the power impact may be 
minimal.

What do you think.
> 
> Kevin
> 
> 
> 
> > Reviewed-by: Basak, Partha <p-bas...@ti.com>
> > Signed-off-by: Abraham Arce <x0066...@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);
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to