aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorori inbar <ori.inbar.altair.semi.com@gmail.com>2013-03-27 15:25:58 -0500
committerAleksander Morgado <aleksander@lanedo.com>2013-03-28 20:13:20 +0100
commit98772f2ec9af0662631232a176141465a12b06e6 (patch)
treea062db5cad9ce01453d8f85760d3f729132d55b5
parenteffd574a632c78f70887368c8296d133157c2a3c (diff)
iface-modem-3gpp: handle access technology change in operator_loading state
This patch fixes a problem of disregarding CEREG/CGREG/CREG reported access technology since we are in "registering" state - meaning we are loading operator name+code. now even in this transition state the ACT is updated.
-rw-r--r--src/mm-iface-modem-3gpp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c
index 6ec07a68..a3d94402 100644
--- a/src/mm-iface-modem-3gpp.c
+++ b/src/mm-iface-modem-3gpp.c
@@ -963,6 +963,10 @@ mm_iface_modem_3gpp_update_access_technologies (MMIfaceModem3gpp *self,
MMModemAccessTechnology access_tech)
{
MMModem3gppRegistrationState state;
+ RegistrationStateContext *ctx;
+
+ ctx = get_registration_state_context (self);
+ g_assert (ctx);
g_object_get (self,
MM_IFACE_MODEM_3GPP_REGISTRATION_STATE, &state,
@@ -971,7 +975,8 @@ mm_iface_modem_3gpp_update_access_technologies (MMIfaceModem3gpp *self,
/* Even if registration state didn't change, report access technology,
* but only if something valid to report */
if (state == MM_MODEM_3GPP_REGISTRATION_STATE_HOME ||
- state == MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING) {
+ state == MM_MODEM_3GPP_REGISTRATION_STATE_ROAMING ||
+ ctx->reloading_operator) {
if (access_tech != MM_MODEM_ACCESS_TECHNOLOGY_UNKNOWN)
mm_iface_modem_update_access_technologies (MM_IFACE_MODEM (self),
access_tech,