aboutsummaryrefslogtreecommitdiff
path: root/plugins/mm-modem-zte.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/mm-modem-zte.c')
-rw-r--r--plugins/mm-modem-zte.c36
1 files changed, 23 insertions, 13 deletions
diff --git a/plugins/mm-modem-zte.c b/plugins/mm-modem-zte.c
index 67d6ead5..d5aa5f31 100644
--- a/plugins/mm-modem-zte.c
+++ b/plugins/mm-modem-zte.c
@@ -159,12 +159,17 @@ get_allowed_mode (MMGenericGsm *gsm,
gpointer user_data)
{
MMCallbackInfo *info;
- MMAtSerialPort *primary;
+ MMAtSerialPort *port;
info = mm_callback_info_uint_new (MM_MODEM (gsm), callback, user_data);
- primary = mm_generic_gsm_get_at_port (gsm, MM_PORT_TYPE_PRIMARY);
- g_assert (primary);
- mm_at_serial_port_queue_command (primary, "AT+ZSNT?", 3, get_allowed_mode_done, info);
+
+ port = mm_generic_gsm_get_best_at_port (gsm, &info->error);
+ if (!port) {
+ mm_callback_info_schedule (info);
+ return;
+ }
+
+ mm_at_serial_port_queue_command (port, "AT+ZSNT?", 3, get_allowed_mode_done, info);
}
static void
@@ -188,12 +193,18 @@ set_allowed_mode (MMGenericGsm *gsm,
gpointer user_data)
{
MMCallbackInfo *info;
- MMAtSerialPort *primary;
+ MMAtSerialPort *port;
char *command;
int cm_mode = 0, pref_acq = 0;
info = mm_callback_info_new (MM_MODEM (gsm), callback, user_data);
+ port = mm_generic_gsm_get_best_at_port (gsm, &info->error);
+ if (!port) {
+ mm_callback_info_schedule (info);
+ return;
+ }
+
switch (mode) {
case MM_MODEM_GSM_ALLOWED_MODE_2G_ONLY:
cm_mode = 1;
@@ -217,9 +228,7 @@ set_allowed_mode (MMGenericGsm *gsm,
}
command = g_strdup_printf ("AT+ZSNT=%d,0,%d", cm_mode, pref_acq);
- primary = mm_generic_gsm_get_at_port (gsm, MM_PORT_TYPE_PRIMARY);
- g_assert (primary);
- mm_at_serial_port_queue_command (primary, command, 3, set_allowed_mode_done, info);
+ mm_at_serial_port_queue_command (port, command, 3, set_allowed_mode_done, info);
g_free (command);
}
@@ -237,13 +246,14 @@ cpms_timeout_cb (gpointer user_data)
{
MMCallbackInfo *info = user_data;
MMModem *modem = info->modem;
- MMModemZtePrivate *priv = MM_MODEM_ZTE_GET_PRIVATE (modem);
MMAtSerialPort *primary;
- priv->cpms_timeout = 0;
-
- primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY);
- mm_at_serial_port_queue_command (primary, "+CPMS?", 10, cpms_try_done, info);
+ if (modem) {
+ MM_MODEM_ZTE_GET_PRIVATE (modem)->cpms_timeout = 0;
+ primary = mm_generic_gsm_get_at_port (MM_GENERIC_GSM (modem), MM_PORT_TYPE_PRIMARY);
+ g_assert (primary);
+ mm_at_serial_port_queue_command (primary, "+CPMS?", 10, cpms_try_done, info);
+ }
return FALSE;
}