From: Kevin Hilman <khilman@deeprootsystems.com>
To: Thara Gopinath <thara@ti.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: [PATCH 8/8] OMAP3 PM: Support to enable disable OSWR feature from pm debug fs
Date: Fri, 22 Jan 2010 16:42:03 -0800 [thread overview]
Message-ID: <87y6jpy7ms.fsf@deeprootsystems.com> (raw)
In-Reply-To: <1264001442-20078-9-git-send-email-thara@ti.com> (Thara Gopinath's message of "Wed\, 20 Jan 2010 21\:00\:42 +0530")
Thara Gopinath <thara@ti.com> writes:
> This patch adds enable_oswr flag in pm debug fs to enable
> disable OSWR feature.
> To enable this feature:
> echo 1 > <path>/debug/pm_debug/enable_oswr
> To disable this feature
> echo 0 > <path>/debug/pm_debug/enable_oswr
>
> Signed-off-by: Thara Gopinath <thara@ti.com>
I don't like this approach since it leads to incorrect CPUidle statistics.
Sanjeev has proposed a different approach[1] (which I still need to
review/merge) which just invalidates particular CPUidle states and
then lets the CPUidle enter hook only pick a valid state.
This then will work for the enable_off_mode support and the enable_oswr support
as well as anything else we can dream up down the road.
Kevin
[1] http://marc.info/?l=linux-omap&m=125908504530674&w=2
> ---
> arch/arm/mach-omap2/cpuidle34xx.c | 9 +++++++++
> arch/arm/mach-omap2/pm-debug.c | 2 ++
> arch/arm/mach-omap2/pm.h | 1 +
> arch/arm/mach-omap2/pm34xx.c | 1 +
> 4 files changed, 13 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c
> index 419f683..91ef0df 100644
> --- a/arch/arm/mach-omap2/cpuidle34xx.c
> +++ b/arch/arm/mach-omap2/cpuidle34xx.c
> @@ -155,11 +155,20 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
> * bits in case the powerdomain enters retention
> */
> if (mpu_state <= PWRDM_POWER_RET) {
> + if (!enable_oswr) {
> + mpu_logicl1_ret_state = PWRDM_POWER_RET;
> + mpu_l2cache_ret_state = PWRDM_POWER_RET;
> + }
> pwrdm_set_logic_retst(mpu_pd, mpu_logicl1_ret_state);
> pwrdm_set_mem_retst(mpu_pd, 0, mpu_l2cache_ret_state);
> }
>
> if (core_state <= PWRDM_POWER_RET) {
> + if (!enable_oswr) {
> + core_logic_state = PWRDM_POWER_RET;
> + core_mem1_ret_state = PWRDM_POWER_RET;
> + core_mem2_ret_state = PWRDM_POWER_RET;
> + }
> pwrdm_set_logic_retst(core_pd, core_logic_state);
> pwrdm_set_mem_retst(core_pd, 0, core_mem1_ret_state);
> pwrdm_set_mem_retst(core_pd, 1, core_mem2_ret_state);
> diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
> index 035cfa7..cdb081b 100644
> --- a/arch/arm/mach-omap2/pm-debug.c
> +++ b/arch/arm/mach-omap2/pm-debug.c
> @@ -601,6 +601,8 @@ static int __init pm_dbg_init(void)
> &enable_off_mode, &pm_dbg_option_fops);
> (void) debugfs_create_file("sleep_while_idle", S_IRUGO | S_IWUGO, d,
> &sleep_while_idle, &pm_dbg_option_fops);
> + (void) debugfs_create_file("enable_oswr", S_IRUGO | S_IWUGO, d,
> + &enable_oswr, &pm_dbg_option_fops);
> (void) debugfs_create_file("wakeup_timer_seconds", S_IRUGO | S_IWUGO, d,
> &wakeup_timer_seconds, &pm_dbg_option_fops);
>
> diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
> index 75aa685..03c49a8 100644
> --- a/arch/arm/mach-omap2/pm.h
> +++ b/arch/arm/mach-omap2/pm.h
> @@ -15,6 +15,7 @@
>
> extern u32 enable_off_mode;
> extern u32 sleep_while_idle;
> +extern u32 enable_oswr;
> extern u32 voltage_off_while_idle;
>
> extern void *omap3_secure_ram_storage;
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index bfdcac2..53c08a5 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -73,6 +73,7 @@ static inline bool is_suspending(void)
>
> u32 enable_off_mode;
> u32 sleep_while_idle;
> +u32 enable_oswr;
> u32 wakeup_timer_seconds;
> u32 voltage_off_while_idle;
>
> --
> 1.5.6.3
>
> --
> 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
next prev parent reply other threads:[~2010-01-23 0:42 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-20 15:30 [PATCH 0/8] OMAP3: PM: Open Switch Retention support in the cpuidle thread Thara Gopinath
2010-01-20 15:30 ` [PATCH 1/8] PM: Increase the cpu idle max state Thara Gopinath
2010-01-20 15:30 ` [PATCH 2/8] OMAP3 PM: Conditional UART context save restore Thara Gopinath
2010-01-20 15:30 ` [PATCH 3/8] OMAP2/3 PM: Adding powerdomain APIs for reading the next logic and mem state Thara Gopinath
2010-01-20 15:30 ` [PATCH 4/8] OMAP3 PM: Defining .pwrsts_logic_ret field for core power domain structure Thara Gopinath
2010-01-20 15:30 ` [PATCH 5/8] OMAP3 PM: Adding conditional core powerdomain context save and restore Thara Gopinath
2010-01-20 15:30 ` [PATCH 6/8] OMAP3 PM: Enable DPLL4 autoidle after system off Thara Gopinath
2010-01-20 15:30 ` [PATCH 7/8] OMAP3 PM: Support for Open Switch Retention for Core and MPU power domains in cpuidle path Thara Gopinath
2010-01-20 15:30 ` [PATCH 8/8] OMAP3 PM: Support to enable disable OSWR feature from pm debug fs Thara Gopinath
2010-01-23 0:42 ` Kevin Hilman [this message]
2010-01-24 4:12 ` Gopinath, Thara
2010-01-25 19:55 ` Kevin Hilman
2010-01-21 5:59 ` [PATCH 7/8] OMAP3 PM: Support for Open Switch Retention for Core and MPU power domains in cpuidle path Paul Walmsley
2010-01-23 0:35 ` Kevin Hilman
2010-01-20 17:34 ` [PATCH 6/8] OMAP3 PM: Enable DPLL4 autoidle after system off Paul Walmsley
2010-01-21 5:33 ` Gopinath, Thara
2010-01-21 5:58 ` Paul Walmsley
2010-01-21 7:01 ` Gopinath, Thara
2010-01-21 7:12 ` Paul Walmsley
2010-01-23 0:15 ` [PATCH 5/8] OMAP3 PM: Adding conditional core powerdomain context save and restore Kevin Hilman
2010-01-21 6:25 ` [PATCH 4/8] OMAP3 PM: Defining .pwrsts_logic_ret field for core power domain structure Paul Walmsley
2010-01-21 6:12 ` [PATCH 3/8] OMAP2/3 PM: Adding powerdomain APIs for reading the next logic and mem state Paul Walmsley
2010-01-21 7:02 ` Gopinath, Thara
2010-01-22 23:44 ` [PATCH 2/8] OMAP3 PM: Conditional UART context save restore Kevin Hilman
2010-01-21 6:23 ` [PATCH 0/8] OMAP3: PM: Open Switch Retention support in the cpuidle thread Paul Walmsley
2010-01-21 7:08 ` Gopinath, Thara
2010-01-21 7:18 ` Paul Walmsley
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=87y6jpy7ms.fsf@deeprootsystems.com \
--to=khilman@deeprootsystems.com \
--cc=linux-omap@vger.kernel.org \
--cc=thara@ti.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.