summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2011-02-09 23:15:52 -0600
committerDenis Kenzior <denkenz@gmail.com>2011-02-10 00:27:01 -0600
commit458fe585a0c8fc344fe987beb81bad59eb29da34 (patch)
tree65a0b91819ffa07a9abe6745f9202ee9115038cb
parent2b50146a21a0382e1fb68374b8f92d02358e1555 (diff)
downloadofono-458fe585a0c8fc344fe987beb81bad59eb29da34.tar.bz2
modem: Fix up previous commit
-rw-r--r--src/modem.c10
-rw-r--r--src/ofono.h4
2 files changed, 9 insertions, 5 deletions
diff --git a/src/modem.c b/src/modem.c
index b195970c..18d9bbe0 100644
--- a/src/modem.c
+++ b/src/modem.c
@@ -759,13 +759,12 @@ static int set_powered(struct ofono_modem *modem, ofono_bool_t powered)
err = driver->disable(modem);
}
- if (err == 0)
+ if (err == 0) {
modem->powered = powered;
- else if (err != -EINPROGRESS)
+ notify_powered_watches(modem);
+ } else if (err != -EINPROGRESS)
modem->powered_pending = modem->powered;
- notify_powered_watches(modem);
-
return err;
}
@@ -797,6 +796,8 @@ static gboolean set_powered_timeout(gpointer user)
dbus_bool_t powered = FALSE;
modem->powered = FALSE;
+ notify_powered_watches(modem);
+
ofono_dbus_signal_property_changed(conn, modem->path,
OFONO_MODEM_INTERFACE,
"Powered", DBUS_TYPE_BOOLEAN,
@@ -1034,6 +1035,7 @@ void ofono_modem_set_powered(struct ofono_modem *modem, ofono_bool_t powered)
goto out;
modem->powered = powered;
+ notify_powered_watches(modem);
if (modem->lockdown)
ofono_dbus_signal_property_changed(conn, modem->path,
diff --git a/src/ofono.h b/src/ofono.h
index 328213c6..517edfb7 100644
--- a/src/ofono.h
+++ b/src/ofono.h
@@ -188,7 +188,9 @@ unsigned int __ofono_modem_add_online_watch(struct ofono_modem *modem,
void __ofono_modem_remove_online_watch(struct ofono_modem *modem,
unsigned int id);
-typedef void (*ofono_modem_powered_notify_func)(ofono_bool_t powered, void *data);
+typedef void (*ofono_modem_powered_notify_func)(ofono_bool_t powered,
+ void *data);
+
unsigned int __ofono_modem_add_powered_watch(struct ofono_modem *modem,
ofono_modem_online_notify_func notify,
void *data, ofono_destroy_func destroy);