[PATCH] Update EPS registration state for LTE qmi modems

Dan Williams dcbw at redhat.com
Tue Feb 13 16:28:44 UTC 2018


On Tue, 2018-02-13 at 10:38 +0100, Alfonso Sánchez-Beato wrote:
> 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.

Pushed to git master and mm-1-6, thanks!

Dan

> ---
>  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);
>  }
>  


More information about the ModemManager-devel mailing list