diff options
Diffstat (limited to 'src/mm-broadband-modem-mbim.c')
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 14b1571f..c9c11435 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -8205,9 +8205,18 @@ sar_load_power_level (MMIfaceModemSar *_self, static gboolean sar_enable_finish (MMIfaceModemSar *self, GAsyncResult *res, + guint *out_sar_power_level, GError **error) { - return g_task_propagate_boolean (G_TASK (res), error); + guint level; + + if (!g_task_propagate_boolean (G_TASK (res), error)) + return FALSE; + + level = GPOINTER_TO_UINT (g_task_get_task_data (G_TASK (res))); + if (out_sar_power_level) + *out_sar_power_level = level; + return TRUE; } static void @@ -8253,6 +8262,8 @@ sar_enable (MMIfaceModemSar *_self, config_state->antenna_index = 0xFFFFFFFF; config_state->backoff_index = mm_iface_modem_sar_get_power_level (_self); + g_task_set_task_data (task, GUINT_TO_POINTER (config_state->backoff_index), NULL); + message = mbim_message_ms_sar_config_set_new (MBIM_SAR_CONTROL_MODE_OS, enable ? MBIM_SAR_BACKOFF_STATE_ENABLED : MBIM_SAR_BACKOFF_STATE_DISABLED, 1, (const MbimSarConfigState **)&config_state, NULL); |