OMAP3: PM: MPU and CORE should stay awake if there is CAM domain ACTIVE

MPU and CORE should stay awake if there is CAM domain ACTIVE. This is
because that module doesn't have wake-up capability.

This should replace the patch that is currently in the PM branch.

Signed-off-by: Jouni Hogander <jouni.hogander@nokia.com>
Signed-off-by: Tero Kristo <tero.kristo@nokia.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
This commit is contained in:
Tero Kristo 2008-12-11 16:46:57 +02:00 committed by Kevin Hilman
parent ecf157d0b3
commit c16c3f672d
1 changed files with 6 additions and 0 deletions

View File

@ -80,6 +80,7 @@ static int (*_omap_save_secure_sram)(u32 *addr);
static struct powerdomain *mpu_pwrdm, *neon_pwrdm; static struct powerdomain *mpu_pwrdm, *neon_pwrdm;
static struct powerdomain *core_pwrdm, *per_pwrdm; static struct powerdomain *core_pwrdm, *per_pwrdm;
static struct powerdomain *cam_pwrdm;
static int set_pwrdm_state(struct powerdomain *pwrdm, u32 state); static int set_pwrdm_state(struct powerdomain *pwrdm, u32 state);
@ -355,6 +356,9 @@ static void omap_sram_idle(void)
} }
} }
if (pwrdm_read_pwrst(cam_pwrdm) == PWRDM_POWER_ON)
omap2_clkdm_deny_idle(mpu_pwrdm->pwrdm_clkdms[0]);
/* CORE */ /* CORE */
if (core_next_state < PWRDM_POWER_ON) { if (core_next_state < PWRDM_POWER_ON) {
omap_uart_prepare_idle(0); omap_uart_prepare_idle(0);
@ -434,6 +438,7 @@ static void omap_sram_idle(void)
pwrdm_post_transition(); pwrdm_post_transition();
omap2_clkdm_allow_idle(mpu_pwrdm->pwrdm_clkdms[0]);
} }
/* /*
@ -1067,6 +1072,7 @@ static int __init omap3_pm_init(void)
neon_pwrdm = pwrdm_lookup("neon_pwrdm"); neon_pwrdm = pwrdm_lookup("neon_pwrdm");
per_pwrdm = pwrdm_lookup("per_pwrdm"); per_pwrdm = pwrdm_lookup("per_pwrdm");
core_pwrdm = pwrdm_lookup("core_pwrdm"); core_pwrdm = pwrdm_lookup("core_pwrdm");
cam_pwrdm = pwrdm_lookup("cam_pwrdm");
omap_push_sram_idle(); omap_push_sram_idle();
#ifdef CONFIG_SUSPEND #ifdef CONFIG_SUSPEND