diff options
author | Aleksander Morgado <aleksandermj@google.com> | 2022-07-16 14:43:56 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-07-16 22:24:02 +0200 |
commit | 21d24657ebddbf7a7ad000867d48655e10fa8da0 (patch) | |
tree | a95f64882451669955e49688240400bf7764e5e3 /src/mm-shared-qmi.c | |
parent | d2bc73f394ddcb3a9d4cb90745cb9eab8bb6c8ec (diff) |
shared-qmi: make refresh all non-fatal during SIM hot swap setup
If for any reason "Refresh all" fails, don't return an error, as we
may have already configured SIM slot status correctly.
Diffstat (limited to 'src/mm-shared-qmi.c')
-rw-r--r-- | src/mm-shared-qmi.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/src/mm-shared-qmi.c b/src/mm-shared-qmi.c index 2a181378..52b36268 100644 --- a/src/mm-shared-qmi.c +++ b/src/mm-shared-qmi.c @@ -3971,35 +3971,23 @@ uim_refresh_register_all_ready (QmiClientUim *client, g_autoptr(QmiMessageUimRefreshRegisterAllOutput) output = NULL; g_autoptr(GError) error = NULL; MMIfaceModem *self; - Private *priv; SetupSimHotSwapContext *ctx; self = g_task_get_source_object (task); - priv = get_private (MM_SHARED_QMI (self)); ctx = g_task_get_task_data (task); output = qmi_client_uim_refresh_register_all_finish (client, res, &error); if (!output || !qmi_message_uim_refresh_register_all_output_get_result (output, &error)) { - if (g_error_matches (error, QMI_PROTOCOL_ERROR, QMI_PROTOCOL_ERROR_NOT_SUPPORTED) || - g_error_matches (error, QMI_PROTOCOL_ERROR, QMI_PROTOCOL_ERROR_INVALID_QMI_COMMAND)) { - /* As last resort, if 'refresh register all' fails, try a plain 'refresh register'. - * Some older modems may not support 'refresh register all'. */ - ctx->step++; - setup_sim_hot_swap_step (task); - return; - } - + /* As last resort, if 'refresh register all' fails, try a plain 'refresh register'. + * Some older modems may not support 'refresh register all'. */ mm_obj_dbg (self, "refresh register all operation failed: %s", error->message); - g_clear_object (&priv->uim_client); - g_task_return_error (task, g_steal_pointer (&error)); - g_object_unref (task); - return; + ctx->step++; + } else { + /* Jump to setup refresh indication signal */ + mm_obj_dbg (self, "registered for all SIM refresh events"); + ctx->step = SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_INDICATION; } - mm_obj_dbg (self, "registered for all SIM refresh events"); - - /* Jump to setup refresh indication signal */ - ctx->step = SETUP_SIM_HOT_SWAP_STEP_UIM_REFRESH_INDICATION; setup_sim_hot_swap_step (task); } |