Abraham, > -----Original Message----- > To: Arce, Abraham > Cc: linux-input@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx > Subject: Re: [PATCH v6 8/8] Input: omap4 - pm runtime > > Abraham Arce <x0066660@xxxxxx> 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@xxxxxx> > > Signed-off-by: Abraham Arce <x0066660@xxxxxx> > > --- > > 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); In patch 1, kbd is included in the hwmods list. Hence kbd would be reset during init and clocks would be disabled. Probe is not doing any clock enable before accessing the kbd registers. Later, only in this patch, pm_runtime_get_sync() is being done. Ideally, once the kbd is included in the hwmod list, clock_enable() shall be used before accessing kbd registers and later in this patch pm_runtime_get_sync() shall be used while removing usage of clk_enable(). -V Charulatha > > + > > 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-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html