diff options
Diffstat (limited to 'plugins/altair/mm-broadband-modem-altair-lte.c')
-rw-r--r-- | plugins/altair/mm-broadband-modem-altair-lte.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/plugins/altair/mm-broadband-modem-altair-lte.c b/plugins/altair/mm-broadband-modem-altair-lte.c index e645776..3c5ef6c 100644 --- a/plugins/altair/mm-broadband-modem-altair-lte.c +++ b/plugins/altair/mm-broadband-modem-altair-lte.c @@ -286,7 +286,9 @@ load_supported_bands_finish (MMIfaceModem *self, GAsyncResult *res, GError **error) { - /* Never fails */ + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) + return NULL; + return (GArray *) g_array_ref (g_simple_async_result_get_op_res_gpointer ( G_SIMPLE_ASYNC_RESULT (res))); } @@ -365,7 +367,9 @@ load_current_bands_finish (MMIfaceModem *self, GAsyncResult *res, GError **error) { - /* Never fails */ + if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) + return NULL; + return (GArray *) g_array_ref (g_simple_async_result_get_op_res_gpointer ( G_SIMPLE_ASYNC_RESULT (res))); } @@ -909,8 +913,11 @@ setup_ports (MMBroadbandModem *self) MM_BROADBAND_MODEM_CLASS (mm_broadband_modem_altair_lte_parent_class)->setup_ports (self); primary = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)); + if (!primary) + return; - g_object_set (mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)), + g_object_set (primary, + MM_SERIAL_PORT_SEND_DELAY, (guint64) 0, MM_AT_SERIAL_PORT_SEND_LF, TRUE, MM_AT_SERIAL_PORT_INIT_SEQUENCE, primary_init_sequence, NULL); @@ -956,11 +963,6 @@ mm_broadband_modem_altair_lte_init (MMBroadbandModemAltairLte *self) static void iface_modem_init (MMIfaceModem *iface) { - /* the modem is powered up at startup - no need to waste - * on power query and power up commands */ - iface->load_power_state = NULL; - iface->load_power_state_finish = NULL; - iface->modem_power_down = modem_power_down; iface->modem_power_down_finish = modem_power_down_finish; iface->create_bearer = modem_create_bearer; @@ -1044,4 +1046,11 @@ mm_broadband_modem_altair_lte_class_init (MMBroadbandModemAltairLteClass *klass) g_type_class_add_private (object_class, sizeof (MMBroadbandModemAltairLtePrivate)); broadband_modem_class->setup_ports = setup_ports; + + /* The Altair LTE modem reboots itself upon receiving an ATZ command. We + * need to skip the default implementation in MMBroadbandModem to prevent + * an ATZ command from being issued as part of the modem initialization + * sequence when enabling the modem. */ + broadband_modem_class->enabling_modem_init = NULL; + broadband_modem_class->enabling_modem_init_finish = NULL; } |