diff options
author | Dan Williams <dcbw@redhat.com> | 2011-01-14 12:17:02 -0600 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2011-01-14 12:17:02 -0600 |
commit | d908389aff85a77757d3a86f0be6b47535991e3c (patch) | |
tree | 0a5ef3f0b217a170bb07a95f5728c24ad9212390 /plugins/mm-modem-mbm.c | |
parent | 12b144e120b7a275f4b1ffe5a51fc772304f4fa1 (diff) |
core: add modem reset/power-cycle command
Based on a patch by Elly Jones from Google.
Diffstat (limited to 'plugins/mm-modem-mbm.c')
-rw-r--r-- | plugins/mm-modem-mbm.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/mm-modem-mbm.c b/plugins/mm-modem-mbm.c index 53e98ba6..554ebc27 100644 --- a/plugins/mm-modem-mbm.c +++ b/plugins/mm-modem-mbm.c @@ -510,6 +510,24 @@ do_disconnect (MMGenericGsm *gsm, } static void +reset (MMModem *modem, + MMModemFn callback, + gpointer user_data) +{ + MMCallbackInfo *info; + MMAtSerialPort *port; + + info = mm_callback_info_new (MM_MODEM (modem), callback, user_data); + + /* Ensure we have a usable port to use for the command */ + port = mm_generic_gsm_get_best_at_port (MM_GENERIC_GSM (modem), &info->error); + if (port) + mm_at_serial_port_queue_command (port, "*E2RESET", 3, NULL, NULL); + + mm_callback_info_schedule (info); +} + +static void factory_reset_done (MMAtSerialPort *port, GString *response, GError *error, @@ -940,6 +958,7 @@ modem_init (MMModem *modem_class) modem_class->grab_port = grab_port; modem_class->disable = disable; modem_class->connect = do_connect; + modem_class->reset = reset; modem_class->factory_reset = factory_reset; } |