From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: rjw@sisk.pl, linaro-kernel@lists.linaro.org,
linux-pm@vger.kernel.org, patches@linaro.org, lenb@kernel.org,
linus.walleij@linaro.org, rnayak@ti.com, kernel@pengutronix.de,
tglx@linutronix.de
Subject: Re: [PATCH 1/4][resend] cpuidle : handle clockevent notify from the cpuidle framework
Date: Thu, 21 Mar 2013 14:52:44 +0100 [thread overview]
Message-ID: <514B10AC.9090909@linaro.org> (raw)
In-Reply-To: <514B0417.6020401@ti.com>
On 03/21/2013 01:59 PM, Santosh Shilimkar wrote:
> On Thursday 21 March 2013 05:51 PM, Daniel Lezcano wrote:
>> When a cpu enters a deep idle state, the local timers are stopped and
>> the time framework falls back to the timer device used as a broadcast
>> timer.
>>
>> The different cpuidle drivers are calling clockevents_notify ENTER/EXIT
>> when the idle state stops the local timer.
>>
>> Add a new flag CPUIDLE_FLAG_TIMER_STOP which can be set by the cpuidle
>> drivers. If the flag is set, the cpuidle core code takes care of the
>> notification on behalf of the driver to avoid pointless code duplication.
>>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>> Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
>> Cc: Len Brown <lenb@kernel.org>
>> Cc: Linus Walleij <linus.walleij@linaro.org>
>> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> Cc: Rajendra Nayak <rnayak@ti.com>
>> Cc: Sascha Hauer <kernel@pengutronix.de>
>> Cc: Thomas Gleixner <tglx@linutronix.de>
>> ---
>> drivers/cpuidle/cpuidle.c | 9 +++++++++
>> include/linux/cpuidle.h | 1 +
>> 2 files changed, 10 insertions(+)
>>
>> diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
>> index eba6929..c500370 100644
>> --- a/drivers/cpuidle/cpuidle.c
>> +++ b/drivers/cpuidle/cpuidle.c
>> @@ -8,6 +8,7 @@
>> * This code is licenced under the GPL.
>> */
>>
>> +#include <linux/clockchips.h>
>> #include <linux/kernel.h>
>> #include <linux/mutex.h>
>> #include <linux/sched.h>
>> @@ -146,12 +147,20 @@ int cpuidle_idle_call(void)
>>
>> trace_cpu_idle_rcuidle(next_state, dev->cpu);
>>
>> + if (drv->states[next_state].flags & CPUIDLE_FLAG_TIMER_STOP)
>> + clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER,
>> + &dev->cpu);
>> +
> Seems like good clean-up from drivers.
> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>
> How about taking care of cpu_pm_notifiers() as well with some
> additional flag for CPU and cluster power state. That can help
> to reduce and consolidate the code. What you say ?
Do you mean add a flag for different level of idle (idle, suspend, power
off) and then use the cpu_pm_enter/cpu_cluster_pm_enter in all the
drivers as a common framework ?
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
next prev parent reply other threads:[~2013-03-21 13:52 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-21 12:21 [PATCH 1/4][resend] cpuidle : handle clockevent notify from the cpuidle framework Daniel Lezcano
2013-03-21 12:21 ` [PATCH 2/4] cpuidle / omap4 : use CPUIDLE_FLAG_TIMER_STOP flag Daniel Lezcano
2013-03-21 13:01 ` Santosh Shilimkar
2013-03-21 13:05 ` Santosh Shilimkar
2013-03-21 13:14 ` Daniel Lezcano
2013-03-21 13:21 ` Santosh Shilimkar
2013-03-22 17:05 ` Kevin Hilman
2013-03-21 12:21 ` [PATCH 3/4] cpuidle / imx6 " Daniel Lezcano
2013-03-21 13:03 ` Santosh Shilimkar
2013-03-21 12:21 ` [PATCH 4/4] cpuidle / ux500 " Daniel Lezcano
2013-03-21 12:59 ` [PATCH 1/4][resend] cpuidle : handle clockevent notify from the cpuidle framework Santosh Shilimkar
2013-03-21 13:52 ` Daniel Lezcano [this message]
2013-03-21 14:04 ` Santosh Shilimkar
2013-03-21 14:41 ` Daniel Lezcano
2013-03-21 14:52 ` Santosh Shilimkar
2013-03-21 15:25 ` Lorenzo Pieralisi
2013-03-26 8:41 ` Santosh Shilimkar
2013-03-21 13:54 ` Daniel Lezcano
2013-03-22 0:41 ` Rafael J. Wysocki
2013-03-22 17:04 ` Kevin Hilman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=514B10AC.9090909@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=kernel@pengutronix.de \
--cc=lenb@kernel.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-pm@vger.kernel.org \
--cc=patches@linaro.org \
--cc=rjw@sisk.pl \
--cc=rnayak@ti.com \
--cc=santosh.shilimkar@ti.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).