aboutsummaryrefslogtreecommitdiff
path: root/plugins/mm-modem-anydata-cdma.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2011-01-14 12:17:02 -0600
committerDan Williams <dcbw@redhat.com>2011-01-14 12:17:02 -0600
commitd908389aff85a77757d3a86f0be6b47535991e3c (patch)
tree0a5ef3f0b217a170bb07a95f5728c24ad9212390 /plugins/mm-modem-anydata-cdma.c
parent12b144e120b7a275f4b1ffe5a51fc772304f4fa1 (diff)
core: add modem reset/power-cycle command
Based on a patch by Elly Jones from Google.
Diffstat (limited to 'plugins/mm-modem-anydata-cdma.c')
-rw-r--r--plugins/mm-modem-anydata-cdma.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/mm-modem-anydata-cdma.c b/plugins/mm-modem-anydata-cdma.c
index 3bf15ed8..02454b00 100644
--- a/plugins/mm-modem-anydata-cdma.c
+++ b/plugins/mm-modem-anydata-cdma.c
@@ -272,6 +272,24 @@ query_registration_state (MMGenericCdma *cdma,
/*****************************************************************************/
+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_cdma_get_best_at_port (MM_GENERIC_CDMA (modem), &info->error);
+ if (port)
+ mm_at_serial_port_queue_command (port, "*RESET", 3, NULL, NULL);
+
+ mm_callback_info_schedule (info);
+}
+
static gboolean
grab_port (MMModem *modem,
const char *subsys,
@@ -333,6 +351,7 @@ static void
modem_init (MMModem *modem_class)
{
modem_class->grab_port = grab_port;
+ modem_class->reset = reset;
}
static void