aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-sar.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2022-09-19 10:20:33 +0000
committerAleksander Morgado <aleksander@aleksander.es>2022-09-27 08:28:07 +0000
commitb50c24acd151a64c992e51332a6b1a23dde15f11 (patch)
tree6fed923b185e00e6dd4fc36c54567095f4b6edb2 /src/mm-iface-modem-sar.c
parent0994087f1890548f161d7a4512232c39aec26c50 (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.
Diffstat (limited to 'src/mm-iface-modem-sar.c')
-rw-r--r--src/mm-iface-modem-sar.c27
1 files changed, 9 insertions, 18 deletions
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,