[PATCHv7,7/7] OMAP3: PM: Added support for suspending to INACTIVE state
diff mbox

Message ID 1268408357-15621-7-git-send-email-tero.kristo@nokia.com
State New, archived
Delegated to: Kevin Hilman
Headers show

Commit Message

Tero Kristo March 12, 2010, 3:39 p.m. UTC
None

Patch
diff mbox

diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 78b0926..054ec67 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -625,9 +625,11 @@  int omap3_pwrdm_read_next_pwrst(struct powerdomain *pwrdm)
 	return data->next_state;
 }
 
-/* This sets pwrdm state (other than mpu & core. Currently only ON &
- * RET are supported. Function is assuming that clkdm doesn't have
- * hw_sup mode enabled. */
+/*
+ * This sets pwrdm state, used for suspend target state control and
+ * switching off-mode. Function is assuming that clkdm doesn't have
+ * hw_sup mode enabled.
+ */
 int set_pwrdm_state(struct powerdomain *pwrdm, u32 state)
 {
 	u32 cur_state;
@@ -637,11 +639,12 @@  int set_pwrdm_state(struct powerdomain *pwrdm, u32 state)
 	if (pwrdm == NULL || IS_ERR(pwrdm))
 		return -EINVAL;
 
-	while (!(pwrdm->pwrsts & (1 << state))) {
-		if (state == PWRDM_POWER_OFF)
-			return ret;
-		state--;
-	}
+	if (state != PWRDM_POWER_INACTIVE)
+		while (!(pwrdm->pwrsts & (1 << state))) {
+			if (state == PWRDM_POWER_OFF)
+				return ret;
+			state--;
+		}
 
 	cur_state = pwrdm_read_next_pwrst(pwrdm);
 	if (cur_state == state)