Add ofono_modem_reset()

Some modems can screw up everything and then we will need to do a silent
reset of the modem. This patch take the modem back to the OFFLINE state.
This commit is contained in:
Gustavo F. Padovan 2010-12-03 16:52:55 -02:00 committed by Denis Kenzior
parent ab53869a8a
commit 5862e614fd
1 changed files with 20 additions and 0 deletions

View File

@ -1616,6 +1616,26 @@ void ofono_modem_remove(struct ofono_modem *modem)
g_free(modem);
}
void ofono_modem_reset(struct ofono_modem *modem)
{
int err;
DBG("%p", modem);
if (modem->pending) {
DBusMessage *reply = __ofono_error_failed(modem->pending);
__ofono_dbus_pending_reply(&modem->pending, reply);
}
ofono_modem_set_powered(modem, FALSE);
err = set_powered(modem, TRUE);
if (err == -EINPROGRESS)
return;
modem_change_state(modem, MODEM_STATE_PRE_SIM);
}
int ofono_modem_driver_register(const struct ofono_modem_driver *d)
{
DBG("driver: %p, name: %s", d, d->name);