diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem-qmi.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index 82d8a3c8..98e53bba 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -6584,16 +6584,6 @@ common_enable_disable_unsolicited_events_3gpp_profile_manager (MMBroadbandModemQ QmiClient *client_pdc = NULL; QmiClient *client_wds = NULL; - if (!mm_shared_qmi_ensure_client (MM_SHARED_QMI (self), - QMI_SERVICE_PDC, &client_pdc, - callback, user_data)) - return; - - if (!mm_shared_qmi_ensure_client (MM_SHARED_QMI (self), - QMI_SERVICE_WDS, &client_wds, - callback, user_data)) - return; - task = g_task_new (self, NULL, callback, user_data); if (enable == self->priv->profile_manager_unsolicited_events_enabled) { @@ -6604,6 +6594,23 @@ common_enable_disable_unsolicited_events_3gpp_profile_manager (MMBroadbandModemQ return; } + client_pdc = mm_shared_qmi_peek_client (MM_SHARED_QMI (self), + QMI_SERVICE_PDC, + MM_PORT_QMI_FLAG_DEFAULT, + NULL); + client_wds = mm_shared_qmi_peek_client (MM_SHARED_QMI (self), + QMI_SERVICE_WDS, + MM_PORT_QMI_FLAG_DEFAULT, + NULL); + + /* Fail if none of the clients can be allocated */ + if (!client_pdc && !client_wds) { + g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, + "No support for profile refresh events"); + g_object_unref (task); + return; + } + ctx = g_new0 (RegisterProfileRefreshContext, 1); ctx->step = REGISTER_PROFILE_REFRESH_STEP_FIRST; ctx->enable = enable; |