ARM: OMAP4+: PM: use only valid low power state for suspend
authorNishanth Menon <nm@ti.com>
Fri, 6 Jun 2014 06:17:37 +0000 (01:17 -0500)
committerNishanth Menon <nm@ti.com>
Mon, 8 Sep 2014 16:22:42 +0000 (11:22 -0500)
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>
arch/arm/mach-omap2/pm44xx.c

index b377b03ec1b23f967112c154c65186b06c2413a2..0bfce38a744a14f35ec6b30c456e0cff1b3e9dda 100644 (file)
@@ -121,8 +121,10 @@ static int __init pwrdms_setup(struct powerdomain *pwrdm, void *unused)
                return -ENOMEM;
 
        pwrst->pwrdm = pwrdm;
-       pwrst->next_state = PWRDM_POWER_RET;
-       pwrst->next_logic_state = PWRDM_POWER_OFF;
+       pwrst->next_state = pwrdm_get_valid_lp_state(pwrdm, false,
+                                                    PWRDM_POWER_RET);
+       pwrst->next_logic_state = pwrdm_get_valid_lp_state(pwrdm, true,
+                                                          PWRDM_POWER_OFF);
 
        list_add(&pwrst->node, &pwrst_list);