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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux