All of lore.kernel.org
 help / color / mirror / Atom feed
From: Santosh Shilimkar <santosh.shilimkar@ti.com>
To: Nishanth Menon <nm@ti.com>,
	linux-omap <linux-omap@vger.kernel.org>,
	linux-arm <linux-arm-kernel@lists.infradead.org>
Cc: Jean Pihet <jean.pihet@newoldbits.com>,
	Kevin <khilman@deeprootsystems.com>, Tony <tony@atomide.com>
Subject: RE: [PATCH v4 6/7] OMAP3: PM: make omap3_cpuidle_update_states independent of enable_off_mode
Date: Mon, 20 Dec 2010 12:46:22 +0530	[thread overview]
Message-ID: <21f9d2f64e7fbcdb4134e04393d42e40@mail.gmail.com> (raw)
In-Reply-To: <1292712817-24999-7-git-send-email-nm@ti.com>

> -----Original Message-----
> From: linux-omap-owner@vger.kernel.org [mailto:linux-omap-
> owner@vger.kernel.org] On Behalf Of Nishanth Menon
> Sent: Sunday, December 19, 2010 4:24 AM
> To: linux-omap; linux-arm
> Cc: Jean Pihet; Kevin; Tony
> Subject: [PATCH v4 6/7] OMAP3: PM: make omap3_cpuidle_update_states
> independent of enable_off_mode
>
> Currently omap3_cpuidle_update_states makes whole sale decision
> on which C states to update based on enable_off_mode variable
> Instead, achieve the same functionality by independently providing
> mpu and core deepest states the system is allowed to achieve and
> update the idle states accordingly.
>
Thanks Nishant for this change. Indeed it's better than using the debug
related flag.

> Signed-off-by: Nishanth Menon <nm@ti.com>

Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>

> ---
>  arch/arm/mach-omap2/cpuidle34xx.c |   19 ++++++++++---------
>  arch/arm/mach-omap2/pm.h          |    3 ++-
>  arch/arm/mach-omap2/pm34xx.c      |    2 +-
>  3 files changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-
> omap2/cpuidle34xx.c
> index 0d50b45..f80d3f6 100644
> --- a/arch/arm/mach-omap2/cpuidle34xx.c
> +++ b/arch/arm/mach-omap2/cpuidle34xx.c
> @@ -293,25 +293,26 @@ select_state:
>  DEFINE_PER_CPU(struct cpuidle_device, omap3_idle_dev);
>
>  /**
> - * omap3_cpuidle_update_states - Update the cpuidle states.
> + * omap3_cpuidle_update_states() - Update the cpuidle states
> + * @mpu_deepest_state:	Enable states upto and including this for
mpu
> domain
> + * @core_deepest_state:	Enable states upto and including this for
> core domain
>   *
> - * Currently, this function toggles the validity of idle states based
> upon
> - * the flag 'enable_off_mode'. When the flag is set all states are
valid.
> - * Else, states leading to OFF state set to be invalid.
> + * This goes through the list of states available and enables and
> disables the
> + * validity of C states based on deepest state that can be achieved for
> the
> + * variable domain
>   */
> -void omap3_cpuidle_update_states(void)
> +void omap3_cpuidle_update_states(u32 mpu_deepest_state, u32
> core_deepest_state)
>  {
>  	int i;
>
>  	for (i = OMAP3_STATE_C1; i < OMAP3_MAX_STATES; i++) {
>  		struct omap3_processor_cx *cx = &omap3_power_states[i];
>
> -		if (enable_off_mode) {
> +		if ((cx->mpu_state >= mpu_deepest_state) &&
> +		    (cx->core_state >= core_deepest_state)) {
>  			cx->valid = 1;
>  		} else {
> -			if ((cx->mpu_state == PWRDM_POWER_OFF) ||
> -				(cx->core_state	== PWRDM_POWER_OFF))
> -				cx->valid = 0;
> +			cx->valid = 0;
>  		}
>  	}
>  }
> diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
> index 5e0bee9..92ef400 100644
> --- a/arch/arm/mach-omap2/pm.h
> +++ b/arch/arm/mach-omap2/pm.h
> @@ -58,7 +58,8 @@ extern u32 sleep_while_idle;
>  #endif
>
>  #if defined(CONFIG_CPU_IDLE)
> -extern void omap3_cpuidle_update_states(void);
> +extern void omap3_cpuidle_update_states(u32 core_deepest_state,
> +		u32 core_deepest_state);
>  #endif
>
>  #if defined(CONFIG_PM_DEBUG) && defined(CONFIG_DEBUG_FS)
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index 4ba7a06..21cd36e 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -928,7 +928,7 @@ void omap3_pm_off_mode_enable(int enable)
>  		state = PWRDM_POWER_RET;
>
>  #ifdef CONFIG_CPU_IDLE
> -	omap3_cpuidle_update_states();
> +	omap3_cpuidle_update_states(state, state);
>  #endif
>
>  	list_for_each_entry(pwrst, &pwrst_list, node) {
> --
> 1.6.3.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

WARNING: multiple messages have this Message-ID (diff)
From: santosh.shilimkar@ti.com (Santosh Shilimkar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 6/7] OMAP3: PM: make omap3_cpuidle_update_states independent of enable_off_mode
Date: Mon, 20 Dec 2010 12:46:22 +0530	[thread overview]
Message-ID: <21f9d2f64e7fbcdb4134e04393d42e40@mail.gmail.com> (raw)
In-Reply-To: <1292712817-24999-7-git-send-email-nm@ti.com>

> -----Original Message-----
> From: linux-omap-owner at vger.kernel.org [mailto:linux-omap-
> owner at vger.kernel.org] On Behalf Of Nishanth Menon
> Sent: Sunday, December 19, 2010 4:24 AM
> To: linux-omap; linux-arm
> Cc: Jean Pihet; Kevin; Tony
> Subject: [PATCH v4 6/7] OMAP3: PM: make omap3_cpuidle_update_states
> independent of enable_off_mode
>
> Currently omap3_cpuidle_update_states makes whole sale decision
> on which C states to update based on enable_off_mode variable
> Instead, achieve the same functionality by independently providing
> mpu and core deepest states the system is allowed to achieve and
> update the idle states accordingly.
>
Thanks Nishant for this change. Indeed it's better than using the debug
related flag.

> Signed-off-by: Nishanth Menon <nm@ti.com>

Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>

> ---
>  arch/arm/mach-omap2/cpuidle34xx.c |   19 ++++++++++---------
>  arch/arm/mach-omap2/pm.h          |    3 ++-
>  arch/arm/mach-omap2/pm34xx.c      |    2 +-
>  3 files changed, 13 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-
> omap2/cpuidle34xx.c
> index 0d50b45..f80d3f6 100644
> --- a/arch/arm/mach-omap2/cpuidle34xx.c
> +++ b/arch/arm/mach-omap2/cpuidle34xx.c
> @@ -293,25 +293,26 @@ select_state:
>  DEFINE_PER_CPU(struct cpuidle_device, omap3_idle_dev);
>
>  /**
> - * omap3_cpuidle_update_states - Update the cpuidle states.
> + * omap3_cpuidle_update_states() - Update the cpuidle states
> + * @mpu_deepest_state:	Enable states upto and including this for
mpu
> domain
> + * @core_deepest_state:	Enable states upto and including this for
> core domain
>   *
> - * Currently, this function toggles the validity of idle states based
> upon
> - * the flag 'enable_off_mode'. When the flag is set all states are
valid.
> - * Else, states leading to OFF state set to be invalid.
> + * This goes through the list of states available and enables and
> disables the
> + * validity of C states based on deepest state that can be achieved for
> the
> + * variable domain
>   */
> -void omap3_cpuidle_update_states(void)
> +void omap3_cpuidle_update_states(u32 mpu_deepest_state, u32
> core_deepest_state)
>  {
>  	int i;
>
>  	for (i = OMAP3_STATE_C1; i < OMAP3_MAX_STATES; i++) {
>  		struct omap3_processor_cx *cx = &omap3_power_states[i];
>
> -		if (enable_off_mode) {
> +		if ((cx->mpu_state >= mpu_deepest_state) &&
> +		    (cx->core_state >= core_deepest_state)) {
>  			cx->valid = 1;
>  		} else {
> -			if ((cx->mpu_state == PWRDM_POWER_OFF) ||
> -				(cx->core_state	== PWRDM_POWER_OFF))
> -				cx->valid = 0;
> +			cx->valid = 0;
>  		}
>  	}
>  }
> diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
> index 5e0bee9..92ef400 100644
> --- a/arch/arm/mach-omap2/pm.h
> +++ b/arch/arm/mach-omap2/pm.h
> @@ -58,7 +58,8 @@ extern u32 sleep_while_idle;
>  #endif
>
>  #if defined(CONFIG_CPU_IDLE)
> -extern void omap3_cpuidle_update_states(void);
> +extern void omap3_cpuidle_update_states(u32 core_deepest_state,
> +		u32 core_deepest_state);
>  #endif
>
>  #if defined(CONFIG_PM_DEBUG) && defined(CONFIG_DEBUG_FS)
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index 4ba7a06..21cd36e 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -928,7 +928,7 @@ void omap3_pm_off_mode_enable(int enable)
>  		state = PWRDM_POWER_RET;
>
>  #ifdef CONFIG_CPU_IDLE
> -	omap3_cpuidle_update_states();
> +	omap3_cpuidle_update_states(state, state);
>  #endif
>
>  	list_for_each_entry(pwrst, &pwrst_list, node) {
> --
> 1.6.3.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2010-12-20  7:16 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-18 22:53 [PATCH v4 0/7] OMAP: idle path errata fixes Nishanth Menon
2010-12-18 22:53 ` Nishanth Menon
2010-12-18 22:53 ` [PATCH v4 1/7] OMAP3: PM: Update clean_l2 to use v7_flush_dcache_all Nishanth Menon
2010-12-18 22:53   ` Nishanth Menon
2010-12-20  6:43   ` Santosh Shilimkar
2010-12-20  6:43     ` Santosh Shilimkar
2010-12-20 10:19     ` Jean Pihet
2010-12-20 10:19       ` Jean Pihet
2010-12-18 22:53 ` [PATCH v4 2/7] OMAP3: PM: Erratum i581 support: dll kick strategy Nishanth Menon
2010-12-18 22:53   ` Nishanth Menon
2010-12-20  6:47   ` Santosh Shilimkar
2010-12-20  6:47     ` Santosh Shilimkar
2010-12-20 14:16     ` Nishanth Menon
2010-12-20 14:16       ` Nishanth Menon
2010-12-20 10:23   ` Jean Pihet
2010-12-20 10:23     ` Jean Pihet
2010-12-20 11:33     ` Peter 'p2' De Schrijver
2010-12-20 14:21       ` Nishanth Menon
2010-12-20 14:21         ` Nishanth Menon
2010-12-18 22:53 ` [PATCH v4 3/7] omap3: pm: introduce errata handling Nishanth Menon
2010-12-18 22:53   ` Nishanth Menon
2010-12-20 10:18   ` Jean Pihet
2010-12-20 10:18     ` Jean Pihet
2010-12-20 14:39     ` Nishanth Menon
2010-12-20 14:39       ` Nishanth Menon
2010-12-18 22:53 ` [PATCH v4 4/7] OMAP3630: PM: Erratum i608: disable RTA Nishanth Menon
2010-12-18 22:53   ` Nishanth Menon
2010-12-20  6:59   ` Santosh Shilimkar
2010-12-20  6:59     ` Santosh Shilimkar
2010-12-20 11:23     ` Nishanth Menon
2010-12-20 11:23       ` Nishanth Menon
2010-12-20 12:15       ` Santosh Shilimkar
2010-12-20 12:15         ` Santosh Shilimkar
2010-12-20 10:27   ` Jean Pihet
2010-12-20 10:27     ` Jean Pihet
2010-12-20 14:45     ` Nishanth Menon
2010-12-20 14:45       ` Nishanth Menon
2010-12-18 22:53 ` [PATCH v4 5/7] OMAP3630: PM: Disable L2 cache while invalidating L2 cache Nishanth Menon
2010-12-18 22:53   ` Nishanth Menon
2010-12-20  7:13   ` Santosh Shilimkar
2010-12-20  7:13     ` Santosh Shilimkar
2010-12-20 11:44     ` Nishanth Menon
2010-12-20 11:44       ` Nishanth Menon
2010-12-20 12:14       ` Santosh Shilimkar
2010-12-20 12:14         ` Santosh Shilimkar
2010-12-20 13:08         ` Nishanth Menon
2010-12-20 13:08           ` Nishanth Menon
2010-12-20 13:29           ` Santosh Shilimkar
2010-12-20 13:29             ` Santosh Shilimkar
2010-12-20 13:33             ` Nishanth Menon
2010-12-20 13:33               ` Nishanth Menon
2010-12-20 13:37               ` Santosh Shilimkar
2010-12-20 13:37                 ` Santosh Shilimkar
2010-12-20 10:28   ` Jean Pihet
2010-12-20 10:28     ` Jean Pihet
2010-12-18 22:53 ` [PATCH v4 6/7] OMAP3: PM: make omap3_cpuidle_update_states independent of enable_off_mode Nishanth Menon
2010-12-18 22:53   ` Nishanth Menon
2010-12-20  7:16   ` Santosh Shilimkar [this message]
2010-12-20  7:16     ` Santosh Shilimkar
2010-12-20 10:28   ` Jean Pihet
2010-12-20 10:28     ` Jean Pihet
2010-12-18 22:53 ` [PATCH v4 7/7] OMAP3630: PM: Erratum i583: disable coreoff if < ES1.2 Nishanth Menon
2010-12-18 22:53   ` Nishanth Menon
2010-12-20  6:51   ` Santosh Shilimkar
2010-12-20  6:51     ` Santosh Shilimkar
2010-12-20 10:26     ` Jean Pihet
2010-12-20 10:26       ` Jean Pihet
2010-12-20 11:22     ` Nishanth Menon
2010-12-20 11:22       ` Nishanth Menon
2010-12-20 19:05   ` Kevin Hilman
2010-12-20 19:05     ` Kevin Hilman
2010-12-20 19:07     ` Nishanth Menon
2010-12-20 19:07       ` Nishanth Menon
2010-12-20 10:17 ` [PATCH v4 0/7] OMAP: idle path errata fixes Jean Pihet
2010-12-20 10:17   ` Jean Pihet

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=21f9d2f64e7fbcdb4134e04393d42e40@mail.gmail.com \
    --to=santosh.shilimkar@ti.com \
    --cc=jean.pihet@newoldbits.com \
    --cc=khilman@deeprootsystems.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=tony@atomide.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.