[PATCH] Update EPS registration state for LTE qmi modems
Alfonso Sánchez-Beato
alfonso.sanchez-beato at canonical.com
Tue Feb 13 09:38:49 UTC 2018
MM was not updating the EPS registration status for qmi modems. This
led to LTE-only modems never having 'registered' status. This was
happening for Quectel EC21-V modem.
---
src/mm-broadband-modem-qmi.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index 11546795..d87c39aa 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -4744,6 +4744,8 @@ common_process_serving_system_3gpp (MMBroadbandModemQmi *self,
/* Report new registration states */
mm_iface_modem_3gpp_update_cs_registration_state (MM_IFACE_MODEM_3GPP (self), mm_cs_registration_state);
mm_iface_modem_3gpp_update_ps_registration_state (MM_IFACE_MODEM_3GPP (self), mm_ps_registration_state);
+ if (mm_access_technologies & MM_MODEM_ACCESS_TECHNOLOGY_LTE)
+ mm_iface_modem_3gpp_update_eps_registration_state (MM_IFACE_MODEM_3GPP (self), mm_ps_registration_state);
/* Get 3GPP location LAC and CI */
lac = 0;
@@ -5199,6 +5201,7 @@ common_process_system_info_3gpp (MMBroadbandModemQmi *self,
guint16 lac;
guint32 cid;
gchar *operator_id;
+ gboolean has_lte_info;
ps_registration_state = MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN;
cs_registration_state = MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN;
@@ -5210,12 +5213,13 @@ common_process_system_info_3gpp (MMBroadbandModemQmi *self,
* LTE > WCDMA > GSM
* The first one giving results will be the one reported.
*/
- if (!process_lte_info (response_output, indication_output,
- &cs_registration_state,
- &ps_registration_state,
- &lac,
- &cid,
- &operator_id) &&
+ has_lte_info = process_lte_info (response_output, indication_output,
+ &cs_registration_state,
+ &ps_registration_state,
+ &lac,
+ &cid,
+ &operator_id);
+ if (!has_lte_info &&
!process_wcdma_info (response_output, indication_output,
&cs_registration_state,
&ps_registration_state,
@@ -5240,6 +5244,8 @@ common_process_system_info_3gpp (MMBroadbandModemQmi *self,
/* Report new registration states */
mm_iface_modem_3gpp_update_cs_registration_state (MM_IFACE_MODEM_3GPP (self), cs_registration_state);
mm_iface_modem_3gpp_update_ps_registration_state (MM_IFACE_MODEM_3GPP (self), ps_registration_state);
+ if (has_lte_info)
+ mm_iface_modem_3gpp_update_eps_registration_state (MM_IFACE_MODEM_3GPP (self), ps_registration_state);
mm_iface_modem_3gpp_update_location (MM_IFACE_MODEM_3GPP (self), lac, cid);
}
--
2.14.1
More information about the ModemManager-devel
mailing list