aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-iface-modem.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c
index f9266a4c..e3165f29 100644
--- a/src/mm-iface-modem.c
+++ b/src/mm-iface-modem.c
@@ -2534,13 +2534,19 @@ enabling_context_complete_and_free (EnablingContext *ctx)
MM_MODEM_STATE_ENABLED,
MM_MODEM_STATE_CHANGE_REASON_USER_REQUESTED);
else {
+ MMModemLock lock;
+
/* Fallback to DISABLED/LOCKED */
+ lock = mm_gdbus_modem_get_unlock_required (ctx->skeleton);
mm_iface_modem_update_state (
ctx->self,
- (mm_gdbus_modem_get_unlock_required (ctx->skeleton) == MM_MODEM_LOCK_NONE ?
+ ((lock == MM_MODEM_LOCK_NONE ||
+ lock == MM_MODEM_LOCK_SIM_PIN2 ||
+ lock == MM_MODEM_LOCK_SIM_PUK2) ?
MM_MODEM_STATE_DISABLED :
MM_MODEM_STATE_LOCKED),
MM_MODEM_STATE_CHANGE_REASON_UNKNOWN);
+
/* Close the ports if enabling failed */
if (ctx->primary_open)
mm_serial_port_close (MM_SERIAL_PORT (ctx->primary));