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 <[email protected]> --- 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);
