diff options
Diffstat (limited to 'arch/arm/mach-omap2/pm-debug.c')
-rw-r--r-- | arch/arm/mach-omap2/pm-debug.c | 37 |
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 | ||
57 | static int __init pm_dbg_init(void); | ||
58 | |||
59 | void omap2_pm_dump(int mode, int resume, unsigned int us) | 57 | void 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 | ||
168 | static int pm_dbg_init_done; | 166 | static int pm_dbg_init_done; |
169 | 167 | ||
168 | static int __init pm_dbg_init(void); | ||
169 | |||
170 | enum { | 170 | enum { |
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 | ||
489 | static int pwrdm_suspend_get(void *data, u64 *val) | 494 | static 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 | } |
605 | arch_initcall(pm_dbg_init); | 612 | arch_initcall(pm_dbg_init); |
606 | 613 | ||
607 | #else | ||
608 | void pm_dbg_update_time(struct powerdomain *pwrdm, int prev) {} | ||
609 | #endif | 614 | #endif |