[PATCH 07/12] ARM: OMAP2+: PM: use power domain functional state in stats counters

Tero Kristo t-kristo at ti.com
Fri Jan 4 09:07:17 EST 2013


Hi Paul,

On Sun, 2012-12-09 at 10:53 -0700, Paul Walmsley wrote:
> From: Jean Pihet <jean.pihet at newoldbits.com>
> 
> The PM code uses some counters to keep track of the power domains
> transitions, in order to provide the information to drivers (in
> pwrdm_get_context_loss_count) and to expose the information to
> sysfs for debug purpose.
> 
> This patch provides the information for each functional state.
> 
> Signed-off-by: Jean Pihet <j-pihet at ti.com>
> [paul at pwsan.com: use PWRDM_FPWRSTS_COUNT due to functional power state offset;
>  use powerdomain.c fn to convert func pwrsts to names; rename 'state' to
>  'fpwrst' to indicate use of func pwrsts; convert remaining users of the
>  non-func pwrst API; add some kerneldoc]
> Signed-off-by: Paul Walmsley <paul at pwsan.com>
> ---
>  arch/arm/mach-omap2/pm-debug.c    |   42 ++++-----
>  arch/arm/mach-omap2/powerdomain.c |  167 ++++++++++++++++++-------------------
>  arch/arm/mach-omap2/powerdomain.h |   17 ++--
>  3 files changed, 108 insertions(+), 118 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
> index 806a06b..72cf9e0 100644
> --- a/arch/arm/mach-omap2/pm-debug.c
> +++ b/arch/arm/mach-omap2/pm-debug.c
> @@ -53,13 +53,6 @@ enum {
>  	DEBUG_FILE_TIMERS,
>  };
>  
> -static const char pwrdm_state_names[][PWRDM_MAX_PWRSTS] = {
> -	"OFF",
> -	"RET",
> -	"INA",
> -	"ON"
> -};
> -
>  void pm_dbg_update_time(struct powerdomain *pwrdm, int prev)
>  {
>  	s64 t;
> @@ -70,7 +63,7 @@ void pm_dbg_update_time(struct powerdomain *pwrdm, int prev)
>  	/* Update timer for previous state */
>  	t = sched_clock();
>  
> -	pwrdm->state_timer[prev] += t - pwrdm->timer;
> +	pwrdm->fpwrst_timer[prev - PWRDM_FPWRST_OFFSET] += t - pwrdm->timer;
>  
>  	pwrdm->timer = t;
>  }
> @@ -79,6 +72,7 @@ static int clkdm_dbg_show_counter(struct clockdomain *clkdm, void *user)
>  {
>  	struct seq_file *s = (struct seq_file *)user;
>  
> +	/* XXX This needs to be implemented in a better way */

IMO, this part should be dropped, or re-implemented completely. It is
uninformative and I don't think anybody uses it. With the usecounting
fixes in place, it is better than before but still doesn't provide too
much useful information. Would be good to show the clocks that actually
are enabled along with the clockdomain use counts, but in either case,
it doesn't belong in the same debugfs file as the pwrdm counters.

-Tero






More information about the linux-arm-kernel mailing list