From: Jean Pihet <j-pi...@ti.com> Use the caching API instead of using the internal pwrdm->state field for PM debug statistics display.
Note: some power domains states mismatch messages can be printed out with the power domains states statstics, indicating that the power domains are not controlled by any driver or that the invalidate API is not correctly used. Signed-off-by: Jean Pihet <j-pi...@ti.com> --- arch/arm/mach-omap2/pm-debug.c | 16 +++++++++------- 1 files changed, 9 insertions(+), 7 deletions(-) diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c index 13c00fb..ed9846e 100644 --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c @@ -96,19 +96,20 @@ static int clkdm_dbg_show_counter(struct clockdomain *clkdm, void *user) static int pwrdm_dbg_show_counter(struct powerdomain *pwrdm, void *user) { struct seq_file *s = (struct seq_file *)user; - int i; + int i, pwrst; if (strcmp(pwrdm->name, "emu_pwrdm") == 0 || strcmp(pwrdm->name, "wkup_pwrdm") == 0 || strncmp(pwrdm->name, "dpll", 4) == 0) return 0; - if (pwrdm->state != pwrdm_read_func_pwrst(pwrdm)) - printk(KERN_ERR "pwrdm state mismatch(%s) %d != %d\n", - pwrdm->name, pwrdm->state, pwrdm_read_func_pwrst(pwrdm)); + pwrst = pwrdm_read_func_pwrst(pwrdm); + if (pwrdm->state != pwrst) + printk(KERN_ERR "pwrdm state mismatch(%s): last saved %d != current %d\n", + pwrdm->name, pwrdm->state, pwrst); seq_printf(s, "%s (%s)", pwrdm->name, - pwrdm_state_names[pwrdm->state]); + pwrdm_state_names[pwrst]); for (i = 0; i < PWRDM_MAX_FUNC_PWRSTS; i++) seq_printf(s, ",%s:%d", pwrdm_state_names[i], pwrdm->state_counter[i]); @@ -126,7 +127,7 @@ static int pwrdm_dbg_show_counter(struct powerdomain *pwrdm, void *user) static int pwrdm_dbg_show_timer(struct powerdomain *pwrdm, void *user) { struct seq_file *s = (struct seq_file *)user; - int i; + int i, pwrst; if (strcmp(pwrdm->name, "emu_pwrdm") == 0 || strcmp(pwrdm->name, "wkup_pwrdm") == 0 || @@ -134,9 +135,10 @@ static int pwrdm_dbg_show_timer(struct powerdomain *pwrdm, void *user) return 0; pwrdm_state_switch(pwrdm); + pwrst = pwrdm_read_func_pwrst(pwrdm); seq_printf(s, "%s (%s)", pwrdm->name, - pwrdm_state_names[pwrdm->state]); + pwrdm_state_names[pwrst]); for (i = 0; i < PWRDM_MAX_FUNC_PWRSTS; i++) seq_printf(s, ",%s:%lld", pwrdm_state_names[i], -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html