提交 46ba5526 编写于 作者: N Nishanth Menon

ARM: OMAP4+: PM: Make logic state programmable

Move the logic state as different for each power domain. This allows us
to customize the deepest power state we should target over all for each
powerdomain in the follow on patches.
Signed-off-by: NNishanth Menon <nm@ti.com>
Reviewed-by: NKevin Hilman <khilman@linaro.org>
Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
上级 bd002d7b
...@@ -29,6 +29,7 @@ u16 pm44xx_errata; ...@@ -29,6 +29,7 @@ u16 pm44xx_errata;
struct power_state { struct power_state {
struct powerdomain *pwrdm; struct powerdomain *pwrdm;
u32 next_state; u32 next_state;
u32 next_logic_state;
#ifdef CONFIG_SUSPEND #ifdef CONFIG_SUSPEND
u32 saved_state; u32 saved_state;
u32 saved_logic_state; u32 saved_logic_state;
...@@ -54,7 +55,7 @@ static int omap4_pm_suspend(void) ...@@ -54,7 +55,7 @@ static int omap4_pm_suspend(void)
/* Set targeted power domain states by suspend */ /* Set targeted power domain states by suspend */
list_for_each_entry(pwrst, &pwrst_list, node) { list_for_each_entry(pwrst, &pwrst_list, node) {
omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); 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) ...@@ -121,6 +122,8 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
pwrst->pwrdm = pwrdm; pwrst->pwrdm = pwrdm;
pwrst->next_state = PWRDM_POWER_RET; pwrst->next_state = PWRDM_POWER_RET;
pwrst->next_logic_state = PWRDM_POWER_OFF;
list_add(&pwrst->node, &pwrst_list); list_add(&pwrst->node, &pwrst_list);
return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state); return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册