diff options
author | Akash Aggarwal <quic_akasagga@quicinc.com> | 2022-09-01 17:00:16 +0530 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-09-05 13:00:54 +0000 |
commit | b2a186b5c8c5f36fe02b8fab0f64fabf2878bc21 (patch) | |
tree | 6f4c76fb915b570a00f2bf31f3871fa2282a2b57 /src | |
parent | 34d534a52097fcbdd9c964e353ae8c43c139958a (diff) |
mm-broadband-modem-qmi: fix updating access technology and location
Access technology and location properties are updated if modem is in
registered state.
Cache and update them when processing DSD system status indication.
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem-qmi.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index 89edd3bc..25de488f 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -176,6 +176,10 @@ struct _MMBroadbandModemQmiPrivate { gboolean dsd_supported; gboolean dsd_data_rat_available; MMModem3gppRegistrationState system_info_ps_registration_state; + MMModemAccessTechnology access_tech; + guint16 location_area_code; + guint16 tracking_area_code; + guint32 cell_id; }; /*****************************************************************************/ @@ -3955,6 +3959,10 @@ common_process_system_info_3gpp (MMBroadbandModemQmi *self, self->priv->system_info_ps_registration_state = ps_registration_state; consolidated_update_ps_registration_state (self, has_lte_info, has_nr5g_info); + self->priv->access_tech = act; + self->priv->location_area_code = lac; + self->priv->tracking_area_code = tac; + self->priv->cell_id = cid; mm_iface_modem_3gpp_update_access_technologies (MM_IFACE_MODEM_3GPP (self), act); mm_iface_modem_3gpp_update_location (MM_IFACE_MODEM_3GPP (self), lac, tac, cid); } @@ -4042,6 +4050,8 @@ common_process_system_status_3gpp (MMBroadbandModemQmi *self, /* Store DSD data RAT availability and update PS/EPS/5GS states accordingly */ self->priv->dsd_data_rat_available = data_rat_available; consolidated_update_ps_registration_state (self, is_lte, is_nr5g); + mm_iface_modem_3gpp_update_access_technologies (MM_IFACE_MODEM_3GPP (self), self->priv->access_tech); + mm_iface_modem_3gpp_update_location (MM_IFACE_MODEM_3GPP (self), self->priv->location_area_code, self->priv->tracking_area_code, self->priv->cell_id); } static void @@ -12984,6 +12994,7 @@ mm_broadband_modem_qmi_init (MMBroadbandModemQmi *self) MM_TYPE_BROADBAND_MODEM_QMI, MMBroadbandModemQmiPrivate); self->priv->system_info_ps_registration_state = MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN; + self->priv->access_tech = MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN; } static void |