diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2022-09-19 10:39:23 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-09-27 08:28:07 +0000 |
commit | 2c66d43bb983948c7f45115a429430b32530516a (patch) | |
tree | 72b1fdfc2a628c8f2ed92ddfe5528a341ea8507a /src/mm-broadband-modem-qmi.c | |
parent | 1ea5a577e38ebb5393a7b15e59b585acb659cfce (diff) |
broadband-modem-qmi: select last used level when enabling SAR
Same as we do in the MBIM protocol implementation.
Diffstat (limited to 'src/mm-broadband-modem-qmi.c')
-rw-r--r-- | src/mm-broadband-modem-qmi.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index 4040b2a6..f513d0a5 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -8518,7 +8518,15 @@ sar_enable (MMIfaceModemSar *self, task = g_task_new (self, NULL, callback, user_data); input = qmi_message_sar_rf_set_state_input_new (); - level = enable ? QMI_SAR_ENABLE_POWER_INDEX : QMI_SAR_DISABLED_POWER_INDEX; + /* When enabling, try to set the last valid known power level used, instead + * of defaulting to level 1 */ + if (enable) { + level = mm_iface_modem_sar_get_power_level (self); + if (level == QMI_SAR_DISABLED_POWER_INDEX) + level = QMI_SAR_ENABLE_POWER_INDEX; + } else + level = QMI_SAR_DISABLED_POWER_INDEX; + qmi_message_sar_rf_set_state_input_set_state (input, level, NULL); g_task_set_task_data (task, GUINT_TO_POINTER (level), NULL); |