[PATCH] fix GPS resume if powered on previously

Vladimir Koutny vlado at moko.ksp.sk
Mon Jan 5 23:14:43 CET 2009


Fix re-enabling of GPS on resume: the call to gps_pwron_set(0) during suspend
would clear power_was_on flag so the on/off status was always lost.

Signed-off-by: Vladimir Koutny <vlado at ksp.sk>

---

diff --git a/arch/arm/plat-s3c24xx/neo1973_pm_gps.c b/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
index 73337fa..5ca6691 100644
--- a/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
+++ b/arch/arm/plat-s3c24xx/neo1973_pm_gps.c
@@ -300,8 +300,6 @@ static void gps_pwron_set(int on)
 		if ((!on) && (neo1973_gps.power_was_on))
 			regulator_disable(neo1973_gps.regulator);
 	}
-
-	neo1973_gps.power_was_on = !!on;
 }

 static int gps_pwron_get(void)
@@ -358,13 +356,12 @@ static ssize_t power_gps_write(struct device *dev,
 {
 	unsigned long on = simple_strtoul(buf, NULL, 10);

-	if (!strcmp(attr->attr.name, "pwron"))
-#ifdef CONFIG_MACH_NEO1973_GTA01
-{
-#endif
+	if (!strcmp(attr->attr.name, "pwron")) {
 		gps_pwron_set(on);
+		neo1973_gps.power_was_on = !!on;
+	}
 #ifdef CONFIG_MACH_NEO1973_GTA01
-	} else if (!strcmp(attr->attr.name, "power_avdd_3v")) {
+	else if (!strcmp(attr->attr.name, "power_avdd_3v")) {
 		gps_power_3v_set(on);
 	} else if (!strcmp(attr->attr.name, "power_tcxo_2v8")) {
 		gps_power_2v8_set(on);



More information about the openmoko-kernel mailing list