aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-3gpp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-iface-modem-3gpp.c')
-rw-r--r--src/mm-iface-modem-3gpp.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c
index 786d2bc0..50246791 100644
--- a/src/mm-iface-modem-3gpp.c
+++ b/src/mm-iface-modem-3gpp.c
@@ -3053,8 +3053,8 @@ static void interface_initialization_step (GTask *task);
typedef enum {
INITIALIZATION_STEP_FIRST,
INITIALIZATION_STEP_ENABLED_FACILITY_LOCKS,
- INITIALIZATION_STEP_TEST_LOCKED,
INITIALIZATION_STEP_IMEI,
+ INITIALIZATION_STEP_TEST_LOCKED_OR_FAILED,
INITIALIZATION_STEP_EPS_UE_MODE_OPERATION,
INITIALIZATION_STEP_EPS_INITIAL_BEARER_SETTINGS,
INITIALIZATION_STEP_NR5G_REGISTRATION_SETTINGS,
@@ -3254,20 +3254,6 @@ interface_initialization_step (GTask *task)
ctx->step++;
/* fall through */
- case INITIALIZATION_STEP_TEST_LOCKED:
- modem_state = MM_MODEM_STATE_UNKNOWN;
- g_object_get (self,
- MM_IFACE_MODEM_STATE, &modem_state,
- NULL);
- if (modem_state == MM_MODEM_STATE_LOCKED) {
- /* Skip some steps and export the interface if modem is locked */
- ctx->step = INITIALIZATION_STEP_LAST;
- interface_initialization_step (task);
- return;
- }
- ctx->step++;
- /* fall through */
-
case INITIALIZATION_STEP_IMEI:
/* IMEI value is meant to be loaded only once during the whole
* lifetime of the modem. Therefore, if we already have it loaded,
@@ -3284,6 +3270,21 @@ interface_initialization_step (GTask *task)
ctx->step++;
/* fall through */
+ case INITIALIZATION_STEP_TEST_LOCKED_OR_FAILED:
+ modem_state = MM_MODEM_STATE_UNKNOWN;
+ g_object_get (self,
+ MM_IFACE_MODEM_STATE, &modem_state,
+ NULL);
+ if (modem_state == MM_MODEM_STATE_LOCKED ||
+ modem_state == MM_MODEM_STATE_FAILED) {
+ /* Skip some steps and export the interface if modem is locked or failed */
+ ctx->step = INITIALIZATION_STEP_LAST;
+ interface_initialization_step (task);
+ return;
+ }
+ ctx->step++;
+ /* fall through */
+
case INITIALIZATION_STEP_EPS_UE_MODE_OPERATION:
if (MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_eps_ue_mode_operation &&
MM_IFACE_MODEM_3GPP_GET_INTERFACE (self)->load_eps_ue_mode_operation_finish) {