aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/mm-modem-novatel-gsm.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/plugins/mm-modem-novatel-gsm.c b/plugins/mm-modem-novatel-gsm.c
index 4a846269..c8c28d1f 100644
--- a/plugins/mm-modem-novatel-gsm.c
+++ b/plugins/mm-modem-novatel-gsm.c
@@ -49,12 +49,26 @@ mm_modem_novatel_gsm_new (const char *device,
/*****************************************************************************/
static void
+dmat_callback2 (MMSerialPort *port,
+ GString *response,
+ GError *error,
+ gpointer user_data)
+{
+ mm_serial_port_close (port);
+}
+
+static void
dmat_callback (MMSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
{
- mm_serial_port_close (port);
+ if (error) {
+ /* Try it again */
+ if (mm_serial_port_open (port, NULL))
+ mm_serial_port_queue_command (port, "$NWDMAT=1", 2, dmat_callback2, NULL);
+ } else
+ mm_serial_port_close (port);
}
static gboolean