|
@@ -29,6 +29,7 @@ u16 pm44xx_errata;
|
|
|
struct power_state {
|
|
|
struct powerdomain *pwrdm;
|
|
|
u32 next_state;
|
|
|
+ u32 next_logic_state;
|
|
|
#ifdef CONFIG_SUSPEND
|
|
|
u32 saved_state;
|
|
|
u32 saved_logic_state;
|
|
@@ -54,7 +55,7 @@ static int omap4_pm_suspend(void)
|
|
|
/* Set targeted power domain states by suspend */
|
|
|
list_for_each_entry(pwrst, &pwrst_list, node) {
|
|
|
omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state);
|
|
|
- pwrdm_set_logic_retst(pwrst->pwrdm, PWRDM_POWER_OFF);
|
|
|
+ pwrdm_set_logic_retst(pwrst->pwrdm, pwrst->next_logic_state);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -121,6 +122,8 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
|
|
|
|
|
|
pwrst->pwrdm = pwrdm;
|
|
|
pwrst->next_state = PWRDM_POWER_RET;
|
|
|
+ pwrst->next_logic_state = PWRDM_POWER_OFF;
|
|
|
+
|
|
|
list_add(&pwrst->node, &pwrst_list);
|
|
|
|
|
|
return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state);
|