aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-09-13 14:57:16 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-09-13 15:20:42 +0200
commit0080a0d023278bcb456b810cf29eba1901e2d381 (patch)
tree099709e098daebbd6279ee9f74bcf8dad0c1edca /src
parent210af3241cd950e09d02451decb7a035993eba08 (diff)
broadband-modem-qmi: handle SEARCHING registration state
Diffstat (limited to 'src')
-rw-r--r--src/mm-broadband-modem-qmi.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index a345d49a..5e1b6d97 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -2993,13 +2993,21 @@ common_process_serving_system_3gpp (MMBroadbandModemQmi *self,
(mm_access_technologies & MM_IFACE_MODEM_3GPP_ALL_ACCESS_TECHNOLOGIES_MASK))) {
mm_dbg ("Processing 3GPP info...");
} else {
+ MMModem3gppRegistrationState reg_state_3gpp;
+
mm_dbg ("No 3GPP info given...");
g_free (self->priv->current_operator_id);
self->priv->current_operator_id = NULL;
g_free (self->priv->current_operator_description);
self->priv->current_operator_description = NULL;
- mm_iface_modem_3gpp_update_cs_registration_state (MM_IFACE_MODEM_3GPP (self), MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN);
- mm_iface_modem_3gpp_update_ps_registration_state (MM_IFACE_MODEM_3GPP (self), MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN);
+
+ if (registration_state == QMI_NAS_REGISTRATION_STATE_NOT_REGISTERED_SEARCHING)
+ reg_state_3gpp = MM_MODEM_3GPP_REGISTRATION_STATE_SEARCHING;
+ else
+ reg_state_3gpp = MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN;
+
+ mm_iface_modem_3gpp_update_cs_registration_state (MM_IFACE_MODEM_3GPP (self), reg_state_3gpp);
+ mm_iface_modem_3gpp_update_ps_registration_state (MM_IFACE_MODEM_3GPP (self), reg_state_3gpp);
mm_iface_modem_3gpp_update_access_technologies (MM_IFACE_MODEM_3GPP (self), MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN);
mm_iface_modem_3gpp_update_location (MM_IFACE_MODEM_3GPP (self), 0, 0);
return;