diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2022-09-16 10:07:25 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-09-20 14:09:41 +0000 |
commit | 1fa67b3842d4bda8ec2c27dedc231f462f6d105f (patch) | |
tree | f5d7d575984a39feea6d47bef76e8742d99fead8 /src/mm-broadband-modem.c | |
parent | 453e8bc7d1ee51d597b8f458eba76b99e6c707e9 (diff) |
iface-modem-3gpp: allow applying domain registration updates altogether
When processing QMI and MBIM messages to report domain registration
updates, we should do that altogether so that we don't report bogus
transitions to idle if the registration state switches from one domain
to another.
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/629
Diffstat (limited to 'src/mm-broadband-modem.c')
-rw-r--r-- | src/mm-broadband-modem.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 12b77649..a9d4cd73 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -4827,21 +4827,21 @@ registration_state_changed (MMPortSerialAt *port, * - CEREG/C5GREG always reports TAC */ if (cgreg) - mm_iface_modem_3gpp_update_ps_registration_state (MM_IFACE_MODEM_3GPP (self), state); + mm_iface_modem_3gpp_update_ps_registration_state (MM_IFACE_MODEM_3GPP (self), state, FALSE); else if (cereg) { tac = lac; lac = 0; - mm_iface_modem_3gpp_update_eps_registration_state (MM_IFACE_MODEM_3GPP (self), state); + mm_iface_modem_3gpp_update_eps_registration_state (MM_IFACE_MODEM_3GPP (self), state, FALSE); } else if (c5greg) { tac = lac; lac = 0; - mm_iface_modem_3gpp_update_5gs_registration_state (MM_IFACE_MODEM_3GPP (self), state); + mm_iface_modem_3gpp_update_5gs_registration_state (MM_IFACE_MODEM_3GPP (self), state, FALSE); } else { if (act == MM_MODEM_ACCESS_TECHNOLOGY_LTE) { tac = lac; lac = 0; } - mm_iface_modem_3gpp_update_cs_registration_state (MM_IFACE_MODEM_3GPP (self), state); + mm_iface_modem_3gpp_update_cs_registration_state (MM_IFACE_MODEM_3GPP (self), state, FALSE); } /* Only update access technologies from CREG/CGREG response if the modem @@ -5248,7 +5248,7 @@ registration_status_check_ready (MMBroadbandModem *self, mm_obj_dbg (self, "got PS registration state when checking EPS registration state"); else if (ctx->running_5gs) mm_obj_dbg (self, "got PS registration state when checking 5GS registration state"); - mm_iface_modem_3gpp_update_ps_registration_state (MM_IFACE_MODEM_3GPP (self), state); + mm_iface_modem_3gpp_update_ps_registration_state (MM_IFACE_MODEM_3GPP (self), state, FALSE); } else if (cereg) { tac = lac; lac = 0; @@ -5258,7 +5258,7 @@ registration_status_check_ready (MMBroadbandModem *self, mm_obj_dbg (self, "got EPS registration state when checking PS registration state"); else if (ctx->running_5gs) mm_obj_dbg (self, "got EPS registration state when checking 5GS registration state"); - mm_iface_modem_3gpp_update_eps_registration_state (MM_IFACE_MODEM_3GPP (self), state); + mm_iface_modem_3gpp_update_eps_registration_state (MM_IFACE_MODEM_3GPP (self), state, FALSE); } else if (c5greg) { tac = lac; lac = 0; @@ -5268,7 +5268,7 @@ registration_status_check_ready (MMBroadbandModem *self, mm_obj_dbg (self, "got 5GS registration state when checking PS registration state"); else if (ctx->running_eps) mm_obj_dbg (self, "got 5GS registration state when checking EPS registration state"); - mm_iface_modem_3gpp_update_5gs_registration_state (MM_IFACE_MODEM_3GPP (self), state); + mm_iface_modem_3gpp_update_5gs_registration_state (MM_IFACE_MODEM_3GPP (self), state, FALSE); } else { if (act == MM_MODEM_ACCESS_TECHNOLOGY_LTE) { tac = lac; @@ -5280,7 +5280,7 @@ registration_status_check_ready (MMBroadbandModem *self, mm_obj_dbg (self, "got CS registration state when checking EPS registration state"); else if (ctx->running_5gs) mm_obj_dbg (self, "got CS registration state when checking 5GS registration state"); - mm_iface_modem_3gpp_update_cs_registration_state (MM_IFACE_MODEM_3GPP (self), state); + mm_iface_modem_3gpp_update_cs_registration_state (MM_IFACE_MODEM_3GPP (self), state, FALSE); } mm_iface_modem_3gpp_update_access_technologies (MM_IFACE_MODEM_3GPP (self), act); |