diff options
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r-- | src/mm-base-modem.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index d3be6056..9ded0445 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -151,8 +151,18 @@ initialize_ready (MMBaseModem *self, GError *error = NULL; if (!MM_BASE_MODEM_GET_CLASS (self)->initialize_finish (self, res, &error)) { - mm_warn ("couldn't initialize the modem: '%s'", error->message); - mm_base_modem_set_valid (self, FALSE); + /* Wrong state is returned when modem is found locked */ + if (g_error_matches (error, + MM_CORE_ERROR, + MM_CORE_ERROR_WRONG_STATE)) { + mm_dbg ("Couldn't finish initialization in the current state: '%s'", + error->message); + mm_base_modem_set_valid (self, TRUE); + } else { + mm_warn ("couldn't initialize the modem: '%s'", error->message); + mm_base_modem_set_valid (self, FALSE); + } + g_error_free (error); return; } |