aboutsummaryrefslogtreecommitdiff
path: root/src/mm-broadband-modem-mbim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-broadband-modem-mbim.c')
-rw-r--r--src/mm-broadband-modem-mbim.c13
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);