diff options
Diffstat (limited to 'arch/arm/mach-omap2/pm34xx.c')
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 55567bf5ccbf..7623edabc419 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -80,6 +80,7 @@ static int (*_omap_save_secure_sram)(u32 *addr); | |||
80 | 80 | ||
81 | static struct powerdomain *mpu_pwrdm, *neon_pwrdm; | 81 | static struct powerdomain *mpu_pwrdm, *neon_pwrdm; |
82 | static struct powerdomain *core_pwrdm, *per_pwrdm; | 82 | static struct powerdomain *core_pwrdm, *per_pwrdm; |
83 | static struct powerdomain *cam_pwrdm; | ||
83 | 84 | ||
84 | static int set_pwrdm_state(struct powerdomain *pwrdm, u32 state); | 85 | static int set_pwrdm_state(struct powerdomain *pwrdm, u32 state); |
85 | 86 | ||
@@ -355,6 +356,9 @@ static void omap_sram_idle(void) | |||
355 | } | 356 | } |
356 | } | 357 | } |
357 | 358 | ||
359 | if (pwrdm_read_pwrst(cam_pwrdm) == PWRDM_POWER_ON) | ||
360 | omap2_clkdm_deny_idle(mpu_pwrdm->pwrdm_clkdms[0]); | ||
361 | |||
358 | /* CORE */ | 362 | /* CORE */ |
359 | if (core_next_state < PWRDM_POWER_ON) { | 363 | if (core_next_state < PWRDM_POWER_ON) { |
360 | omap_uart_prepare_idle(0); | 364 | omap_uart_prepare_idle(0); |
@@ -434,6 +438,7 @@ static void omap_sram_idle(void) | |||
434 | 438 | ||
435 | pwrdm_post_transition(); | 439 | pwrdm_post_transition(); |
436 | 440 | ||
441 | omap2_clkdm_allow_idle(mpu_pwrdm->pwrdm_clkdms[0]); | ||
437 | } | 442 | } |
438 | 443 | ||
439 | /* | 444 | /* |
@@ -1067,6 +1072,7 @@ static int __init omap3_pm_init(void) | |||
1067 | neon_pwrdm = pwrdm_lookup("neon_pwrdm"); | 1072 | neon_pwrdm = pwrdm_lookup("neon_pwrdm"); |
1068 | per_pwrdm = pwrdm_lookup("per_pwrdm"); | 1073 | per_pwrdm = pwrdm_lookup("per_pwrdm"); |
1069 | core_pwrdm = pwrdm_lookup("core_pwrdm"); | 1074 | core_pwrdm = pwrdm_lookup("core_pwrdm"); |
1075 | cam_pwrdm = pwrdm_lookup("cam_pwrdm"); | ||
1070 | 1076 | ||
1071 | omap_push_sram_idle(); | 1077 | omap_push_sram_idle(); |
1072 | #ifdef CONFIG_SUSPEND | 1078 | #ifdef CONFIG_SUSPEND |