aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-broadband-modem-qmi.c6
-rw-r--r--src/mm-iface-modem.c6
-rw-r--r--src/mm-iface-modem.h1
3 files changed, 13 insertions, 0 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index e6a05b2c..357a3fae 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -2778,6 +2778,12 @@ common_process_serving_system_3gpp (MMBroadbandModemQmi *self,
mm_iface_modem_3gpp_update_eps_registration_state (MM_IFACE_MODEM_3GPP (self),
(mm_access_technologies & MM_MODEM_ACCESS_TECHNOLOGY_LTE) ?
mm_ps_registration_state : MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN);
+ /* Same thing for "5GS" state */
+ if (mm_iface_modem_is_3gpp_5gnr (MM_IFACE_MODEM (self)))
+ mm_iface_modem_3gpp_update_5gs_registration_state (MM_IFACE_MODEM_3GPP (self),
+ (mm_access_technologies & MM_MODEM_ACCESS_TECHNOLOGY_5GNR) ?
+ mm_ps_registration_state : MM_MODEM_3GPP_REGISTRATION_STATE_UNKNOWN);
+
/* Get 3GPP location LAC/TAC and CI */
lac = 0;
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index 84104d46..48105afe 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -5574,6 +5574,12 @@ mm_iface_modem_is_3gpp_lte (MMIfaceModem *self)
}
gboolean
+mm_iface_modem_is_3gpp_5gnr (MMIfaceModem *self)
+{
+ return (mm_iface_modem_get_current_capabilities (self) & MM_MODEM_CAPABILITY_5GNR);
+}
+
+gboolean
mm_iface_modem_is_cdma (MMIfaceModem *self)
{
return (mm_iface_modem_get_current_capabilities (self) & MM_MODEM_CAPABILITY_CDMA_EVDO);
diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h
index 541d6f6b..2df3b59c 100644
--- a/src/mm-iface-modem.h
+++ b/src/mm-iface-modem.h
@@ -391,6 +391,7 @@ MMModemCapability mm_iface_modem_get_current_capabilities (MMIfaceModem *self);
gboolean mm_iface_modem_is_3gpp (MMIfaceModem *self);
gboolean mm_iface_modem_is_3gpp_only (MMIfaceModem *self);
gboolean mm_iface_modem_is_3gpp_lte (MMIfaceModem *self);
+gboolean mm_iface_modem_is_3gpp_5gnr (MMIfaceModem *self);
gboolean mm_iface_modem_is_cdma (MMIfaceModem *self);
gboolean mm_iface_modem_is_cdma_only (MMIfaceModem *self);