* [PATCH v6 8/8] Input: omap4 - pm runtime @ 2010-09-30 5:36 Abraham Arce 2010-09-30 13:51 ` Kevin Hilman 0 siblings, 1 reply; 6+ messages in thread From: Abraham Arce @ 2010-09-30 5:36 UTC (permalink / raw) To: linux-input, linux-omap; +Cc: Abraham Arce Enable pm runtime in driver 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); -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v6 8/8] Input: omap4 - pm runtime 2010-09-30 5:36 [PATCH v6 8/8] Input: omap4 - pm runtime Abraham Arce @ 2010-09-30 13:51 ` Kevin Hilman 2010-10-01 5:31 ` Varadarajan, Charulatha 2010-12-06 13:00 ` Datta, Shubhrajyoti 0 siblings, 2 replies; 6+ messages in thread From: Kevin Hilman @ 2010-09-30 13:51 UTC (permalink / raw) To: Abraham Arce; +Cc: linux-input, linux-omap 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); ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v6 8/8] Input: omap4 - pm runtime 2010-09-30 13:51 ` Kevin Hilman @ 2010-10-01 5:31 ` Varadarajan, Charulatha 2010-12-06 13:00 ` Datta, Shubhrajyoti 1 sibling, 0 replies; 6+ messages in thread From: Varadarajan, Charulatha @ 2010-10-01 5:31 UTC (permalink / raw) To: Arce, Abraham Cc: linux-input@vger.kernel.org, linux-omap@vger.kernel.org, Kevin Hilman Abraham, > -----Original Message----- > To: Arce, Abraham > Cc: linux-input@vger.kernel.org; linux-omap@vger.kernel.org > Subject: Re: [PATCH v6 8/8] Input: omap4 - pm runtime > > 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); 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); ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v6 8/8] Input: omap4 - pm runtime 2010-09-30 13:51 ` Kevin Hilman 2010-10-01 5:31 ` Varadarajan, Charulatha @ 2010-12-06 13:00 ` Datta, Shubhrajyoti 2010-12-08 6:45 ` Basak, Partha 2010-12-08 21:11 ` Kevin Hilman 1 sibling, 2 replies; 6+ messages in thread From: Datta, Shubhrajyoti @ 2010-12-06 13:00 UTC (permalink / raw) To: Kevin Hilman, Arce, Abraham Cc: linux-input@vger.kernel.org, linux-omap@vger.kernel.org Kevin, > -----Original Message----- > From: linux-input-owner@vger.kernel.org [mailto:linux-input- > owner@vger.kernel.org] On Behalf Of Kevin Hilman > Sent: Thursday, September 30, 2010 7:21 PM > To: Arce, Abraham > Cc: linux-input@vger.kernel.org; linux-omap@vger.kernel.org > Subject: Re: [PATCH v6 8/8] Input: omap4 - pm runtime > > 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? 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-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); > -- > To unsubscribe from this list: send the line "unsubscribe linux-input" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v6 8/8] Input: omap4 - pm runtime 2010-12-06 13:00 ` Datta, Shubhrajyoti @ 2010-12-08 6:45 ` Basak, Partha 2010-12-08 21:11 ` Kevin Hilman 1 sibling, 0 replies; 6+ messages in thread From: Basak, Partha @ 2010-12-08 6:45 UTC (permalink / raw) To: Datta, Shubhrajyoti, Kevin Hilman, Arce, Abraham Cc: linux-input@vger.kernel.org, linux-omap@vger.kernel.org > -----Original Message----- > From: linux-omap-owner@vger.kernel.org [mailto:linux-omap- > owner@vger.kernel.org] On Behalf Of Datta, Shubhrajyoti > Sent: Monday, December 06, 2010 6:30 PM > To: Kevin Hilman; Arce, Abraham > Cc: linux-input@vger.kernel.org; linux-omap@vger.kernel.org > Subject: RE: [PATCH v6 8/8] Input: omap4 - pm runtime > > > Kevin, > > -----Original Message----- > > From: linux-input-owner@vger.kernel.org [mailto:linux-input- > > owner@vger.kernel.org] On Behalf Of Kevin Hilman > > Sent: Thursday, September 30, 2010 7:21 PM > > To: Arce, Abraham > > Cc: linux-input@vger.kernel.org; linux-omap@vger.kernel.org > > Subject: Re: [PATCH v6 8/8] Input: omap4 - pm runtime > > > > 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? > 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, I hope you are OK with this. > > > > 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); > > -- > > To unsubscribe from this list: send the line "unsubscribe linux- > input" in > > the body of a message to majordomo@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 majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v6 8/8] Input: omap4 - pm runtime 2010-12-06 13:00 ` Datta, Shubhrajyoti 2010-12-08 6:45 ` Basak, Partha @ 2010-12-08 21:11 ` Kevin Hilman 1 sibling, 0 replies; 6+ messages in thread From: Kevin Hilman @ 2010-12-08 21:11 UTC (permalink / raw) To: Datta, Shubhrajyoti Cc: Arce, Abraham, linux-input@vger.kernel.org, linux-omap@vger.kernel.org "Datta, Shubhrajyoti" <shubhrajyoti@ti.com> writes: [...] >> Subject: Re: [PATCH v6 8/8] Input: omap4 - pm runtime >> >> 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? > 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. I think the changelog needs to be updated to describe the reasons behind the decisions made. Kevin ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-12-08 21:11 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-09-30 5:36 [PATCH v6 8/8] Input: omap4 - pm runtime Abraham Arce 2010-09-30 13:51 ` Kevin Hilman 2010-10-01 5:31 ` Varadarajan, Charulatha 2010-12-06 13:00 ` Datta, Shubhrajyoti 2010-12-08 6:45 ` Basak, Partha 2010-12-08 21:11 ` Kevin Hilman
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox