aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2014-06-06 02:17:37 -0400
committerNishanth Menon <nm@ti.com>2014-09-08 12:22:42 -0400
commitbd7593c69af8f610567fd6b105c440cfe9da7661 (patch)
tree802081b8e6ffafd036845cb404fd553c7447972c
parent46ba55265254e8f47f8c2af6408841f31bab4870 (diff)
ARM: OMAP4+: PM: use only valid low power state for suspend
We are using power domain state as RET and logic state as OFF. This state is OSWR. This may not always be supported on ALL power domains. In fact, on certain power domains, this might result in a hang on certain platforms. Instead, depend on powerdomain data to provide accurate information about the supported powerdomain states and use the appropriate function to query and use it as part of suspend path. Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Kevin Hilman <khilman@linaro.org> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
-rw-r--r--arch/arm/mach-omap2/pm44xx.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index b377b03ec1b2..0bfce38a744a 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -121,8 +121,10 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
121 return -ENOMEM; 121 return -ENOMEM;
122 122
123 pwrst->pwrdm = pwrdm; 123 pwrst->pwrdm = pwrdm;
124 pwrst->next_state = PWRDM_POWER_RET; 124 pwrst->next_state = pwrdm_get_valid_lp_state(pwrdm, false,
125 pwrst->next_logic_state = PWRDM_POWER_OFF; 125 PWRDM_POWER_RET);
126 pwrst->next_logic_state = pwrdm_get_valid_lp_state(pwrdm, true,
127 PWRDM_POWER_OFF);
126 128
127 list_add(&pwrst->node, &pwrst_list); 129 list_add(&pwrst->node, &pwrst_list);
128 130