aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/pm34xx.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/pm34xx.c')
-rw-r--r--arch/arm/mach-omap2/pm34xx.c6
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
81static struct powerdomain *mpu_pwrdm, *neon_pwrdm; 81static struct powerdomain *mpu_pwrdm, *neon_pwrdm;
82static struct powerdomain *core_pwrdm, *per_pwrdm; 82static struct powerdomain *core_pwrdm, *per_pwrdm;
83static struct powerdomain *cam_pwrdm;
83 84
84static int set_pwrdm_state(struct powerdomain *pwrdm, u32 state); 85static 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