[PATCH] Keep modem->powered_pending up to date after set_powered.

Andrzej Zaborowski andrew.zaborowski at intel.com
Thu Sep 10 09:57:11 PDT 2009


Without this once a request to power up the modem fails, modem.c won't
retry even when asked.
---
 src/modem.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/modem.c b/src/modem.c
index ed6f870..5e6e582 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -462,6 +462,11 @@ static int set_powered(struct ofono_modem *modem, ofono_bool_t powered)
 			err = driver->disable(modem);
 	}
 
+	if (err == 0)
+		modem->powered = powered;
+	else if (err != EINPROGRESS)
+		modem->powered_pending = modem->powered;
+
 	return err;
 }
 
@@ -472,6 +477,7 @@ static gboolean set_powered_timeout(gpointer user)
 	DBG("modem: %p", modem);
 
 	modem->timeout = 0;
+	modem->powered_pending = modem->powered;
 
 	if (modem->pending != NULL) {
 		DBusMessage *reply;
@@ -530,9 +536,6 @@ static DBusMessage *modem_set_property(DBusConnection *conn,
 			return NULL;
 		}
 
-		modem->powered = powered;
-		modem->powered_pending = powered;
-
 		g_dbus_send_reply(conn, msg, DBUS_TYPE_INVALID);
 
 		ofono_dbus_signal_property_changed(conn, modem->path,
-- 
1.6.1



More information about the ofono mailing list