aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/pm-debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/pm-debug.c')
-rw-r--r--arch/arm/mach-omap2/pm-debug.c37
1 files changed, 21 insertions, 16 deletions
diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c
index 860b755d2220..c18f7f2f19bc 100644
--- a/arch/arm/mach-omap2/pm-debug.c
+++ b/arch/arm/mach-omap2/pm-debug.c
@@ -54,8 +54,6 @@ int omap2_pm_debug;
54 regs[reg_count++].val = \ 54 regs[reg_count++].val = \
55 __raw_readl(OMAP2_L4_IO_ADDRESS(0x480fe000 + (off))) 55 __raw_readl(OMAP2_L4_IO_ADDRESS(0x480fe000 + (off)))
56 56
57static int __init pm_dbg_init(void);
58
59void omap2_pm_dump(int mode, int resume, unsigned int us) 57void omap2_pm_dump(int mode, int resume, unsigned int us)
60{ 58{
61 struct reg { 59 struct reg {
@@ -69,9 +67,9 @@ void omap2_pm_dump(int mode, int resume, unsigned int us)
69#if 0 67#if 0
70 /* MPU */ 68 /* MPU */
71 DUMP_PRM_MOD_REG(OCP_MOD, OMAP2_PRM_IRQENABLE_MPU_OFFSET); 69 DUMP_PRM_MOD_REG(OCP_MOD, OMAP2_PRM_IRQENABLE_MPU_OFFSET);
72 DUMP_CM_MOD_REG(MPU_MOD, CM_CLKSTCTRL); 70 DUMP_CM_MOD_REG(MPU_MOD, OMAP2_CM_CLKSTCTRL);
73 DUMP_PRM_MOD_REG(MPU_MOD, PM_PWSTCTRL); 71 DUMP_PRM_MOD_REG(MPU_MOD, OMAP2_PM_PWSTCTRL);
74 DUMP_PRM_MOD_REG(MPU_MOD, PM_PWSTST); 72 DUMP_PRM_MOD_REG(MPU_MOD, OMAP2_PM_PWSTST);
75 DUMP_PRM_MOD_REG(MPU_MOD, PM_WKDEP); 73 DUMP_PRM_MOD_REG(MPU_MOD, PM_WKDEP);
76#endif 74#endif
77#if 0 75#if 0
@@ -95,7 +93,7 @@ void omap2_pm_dump(int mode, int resume, unsigned int us)
95 DUMP_CM_MOD_REG(WKUP_MOD, CM_ICLKEN); 93 DUMP_CM_MOD_REG(WKUP_MOD, CM_ICLKEN);
96 DUMP_CM_MOD_REG(PLL_MOD, CM_CLKEN); 94 DUMP_CM_MOD_REG(PLL_MOD, CM_CLKEN);
97 DUMP_CM_MOD_REG(PLL_MOD, CM_AUTOIDLE); 95 DUMP_CM_MOD_REG(PLL_MOD, CM_AUTOIDLE);
98 DUMP_PRM_MOD_REG(CORE_MOD, PM_PWSTST); 96 DUMP_PRM_MOD_REG(CORE_MOD, OMAP2_PM_PWSTST);
99#endif 97#endif
100#if 0 98#if 0
101 /* DSP */ 99 /* DSP */
@@ -105,11 +103,11 @@ void omap2_pm_dump(int mode, int resume, unsigned int us)
105 DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_IDLEST); 103 DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_IDLEST);
106 DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_AUTOIDLE); 104 DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_AUTOIDLE);
107 DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_CLKSEL); 105 DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_CLKSEL);
108 DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, CM_CLKSTCTRL); 106 DUMP_CM_MOD_REG(OMAP24XX_DSP_MOD, OMAP2_CM_CLKSTCTRL);
109 DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, RM_RSTCTRL); 107 DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, OMAP2_RM_RSTCTRL);
110 DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, RM_RSTST); 108 DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, OMAP2_RM_RSTST);
111 DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, PM_PWSTCTRL); 109 DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, OMAP2_PM_PWSTCTRL);
112 DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, PM_PWSTST); 110 DUMP_PRM_MOD_REG(OMAP24XX_DSP_MOD, OMAP2_PM_PWSTST);
113 } 111 }
114#endif 112#endif
115 } else { 113 } else {
@@ -167,6 +165,8 @@ struct dentry *pm_dbg_dir;
167 165
168static int pm_dbg_init_done; 166static int pm_dbg_init_done;
169 167
168static int __init pm_dbg_init(void);
169
170enum { 170enum {
171 DEBUG_FILE_COUNTERS = 0, 171 DEBUG_FILE_COUNTERS = 0,
172 DEBUG_FILE_TIMERS, 172 DEBUG_FILE_TIMERS,
@@ -385,6 +385,11 @@ static int pwrdm_dbg_show_counter(struct powerdomain *pwrdm, void *user)
385 seq_printf(s, ",%s:%d", pwrdm_state_names[i], 385 seq_printf(s, ",%s:%d", pwrdm_state_names[i],
386 pwrdm->state_counter[i]); 386 pwrdm->state_counter[i]);
387 387
388 seq_printf(s, ",RET-LOGIC-OFF:%d", pwrdm->ret_logic_off_counter);
389 for (i = 0; i < pwrdm->banks; i++)
390 seq_printf(s, ",RET-MEMBANK%d-OFF:%d", i + 1,
391 pwrdm->ret_mem_off_counter[i]);
392
388 seq_printf(s, "\n"); 393 seq_printf(s, "\n");
389 394
390 return 0; 395 return 0;
@@ -488,9 +493,11 @@ int pm_dbg_regset_init(int reg_set)
488 493
489static int pwrdm_suspend_get(void *data, u64 *val) 494static int pwrdm_suspend_get(void *data, u64 *val)
490{ 495{
491 *val = omap3_pm_get_suspend_state((struct powerdomain *)data); 496 int ret;
497 ret = omap3_pm_get_suspend_state((struct powerdomain *)data);
498 *val = ret;
492 499
493 if (*val >= 0) 500 if (ret >= 0)
494 return 0; 501 return 0;
495 return *val; 502 return *val;
496} 503}
@@ -575,7 +582,7 @@ static int __init pm_dbg_init(void)
575 (void) debugfs_create_file("time", S_IRUGO, 582 (void) debugfs_create_file("time", S_IRUGO,
576 d, (void *)DEBUG_FILE_TIMERS, &debug_fops); 583 d, (void *)DEBUG_FILE_TIMERS, &debug_fops);
577 584
578 pwrdm_for_each_nolock(pwrdms_setup, (void *)d); 585 pwrdm_for_each(pwrdms_setup, (void *)d);
579 586
580 pm_dbg_dir = debugfs_create_dir("registers", d); 587 pm_dbg_dir = debugfs_create_dir("registers", d);
581 if (IS_ERR(pm_dbg_dir)) 588 if (IS_ERR(pm_dbg_dir))
@@ -604,6 +611,4 @@ static int __init pm_dbg_init(void)
604} 611}
605arch_initcall(pm_dbg_init); 612arch_initcall(pm_dbg_init);
606 613
607#else
608void pm_dbg_update_time(struct powerdomain *pwrdm, int prev) {}
609#endif 614#endif