Simplify ofono_modem_set_powered() logic

This commit is contained in:
Gustavo F. Padovan 2010-11-12 17:56:10 -02:00 committed by Denis Kenzior
parent 2f9af8c105
commit 8ae8deb44f
1 changed files with 26 additions and 23 deletions

View File

@ -752,6 +752,7 @@ static GDBusSignalTable modem_signals[] = {
void ofono_modem_set_powered(struct ofono_modem *modem, ofono_bool_t powered)
{
DBusConnection *conn = ofono_dbus_get_connection();
dbus_bool_t dbus_powered = powered;
if (modem->timeout > 0) {
g_source_remove(modem->timeout);
@ -771,8 +772,9 @@ void ofono_modem_set_powered(struct ofono_modem *modem, ofono_bool_t powered)
modem->powered_pending = powered;
if (modem->powered != powered) {
dbus_bool_t dbus_powered = powered;
if (modem->powered == powered)
goto out;
modem->powered = powered;
if (modem->driver == NULL) {
@ -796,7 +798,8 @@ void ofono_modem_set_powered(struct ofono_modem *modem, ofono_bool_t powered)
sim_state_watch(OFONO_SIM_STATE_READY, modem);
} else
modem_change_state(modem, MODEM_STATE_POWER_OFF);
}
out:
if (powering_down && powered == FALSE) {
modems_remaining -= 1;