diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2022-09-19 10:20:33 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-09-27 08:28:07 +0000 |
commit | b50c24acd151a64c992e51332a6b1a23dde15f11 (patch) | |
tree | 6fed923b185e00e6dd4fc36c54567095f4b6edb2 | |
parent | 0994087f1890548f161d7a4512232c39aec26c50 (diff) |
iface-modem-sar: disallow changing SAR level if SAR disabled
This was already forbidden in the MBIM implementation, and we should
also have it in the QMI implementation, so just make it a generic
check in the interface.
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 11 | ||||
-rw-r--r-- | src/mm-iface-modem-sar.c | 27 | ||||
-rw-r--r-- | src/mm-iface-modem-sar.h | 3 |
3 files changed, 10 insertions, 31 deletions
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 4e7beda9..14b1571f 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -8308,17 +8308,6 @@ sar_set_power_level (MMIfaceModemSar *_self, if (!peek_device (self, &device, callback, user_data)) return; - if (!mm_iface_modem_get_sar_state (_self)) { - g_task_report_new_error (self, - callback, - user_data, - sar_set_power_level, - MM_CORE_ERROR, - MM_CORE_ERROR_WRONG_STATE, - "Couldn't set power level of SAR, because the SAR is disabled"); - return; - } - /* * the value 0xFFFFFFFF means all antennas * the backoff index set to the input power level diff --git a/src/mm-iface-modem-sar.c b/src/mm-iface-modem-sar.c index e03b1596..e8cbf698 100644 --- a/src/mm-iface-modem-sar.c +++ b/src/mm-iface-modem-sar.c @@ -35,24 +35,6 @@ mm_iface_modem_sar_bind_simple_status (MMIfaceModemSar *self, { } -gboolean -mm_iface_modem_get_sar_state (MMIfaceModemSar *self) -{ - MmGdbusModemSar *skeleton = NULL; - gboolean state; - - g_object_get (self, - MM_IFACE_MODEM_SAR_DBUS_SKELETON, &skeleton, - NULL); - - if (!skeleton) - return FALSE; - - state = mm_gdbus_modem_sar_get_state (skeleton); - g_object_unref (skeleton); - return state; -} - guint mm_iface_modem_sar_get_power_level (MMIfaceModemSar *self) { @@ -222,6 +204,15 @@ handle_set_power_level_auth_ready (MMBaseModem *self, return; } + if (!mm_gdbus_modem_sar_get_state (ctx->skeleton)) { + g_dbus_method_invocation_return_error (ctx->invocation, + MM_CORE_ERROR, + MM_CORE_ERROR_WRONG_STATE, + "Cannot set SAR power level: SAR is disabled"); + handle_set_power_level_context_free (ctx); + return; + } + mm_obj_dbg (self, "Set SAR power level to: '%d'", ctx->power_level); MM_IFACE_MODEM_SAR_GET_INTERFACE (ctx->self)->set_power_level ( ctx->self, diff --git a/src/mm-iface-modem-sar.h b/src/mm-iface-modem-sar.h index 2dba7003..633ccdfc 100644 --- a/src/mm-iface-modem-sar.h +++ b/src/mm-iface-modem-sar.h @@ -96,7 +96,6 @@ void mm_iface_modem_sar_shutdown (MMIfaceModemSar *self); void mm_iface_modem_sar_bind_simple_status (MMIfaceModemSar*self, MMSimpleStatus *status); -gboolean mm_iface_modem_get_sar_state (MMIfaceModemSar *self); -guint mm_iface_modem_sar_get_power_level (MMIfaceModemSar *self); +guint mm_iface_modem_sar_get_power_level (MMIfaceModemSar *self); #endif /* MM_IFACE_MODEM_SAR_H */ |