aboutsummaryrefslogtreecommitdiff
path: root/src
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
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')
-rw-r--r--src/mm-broadband-modem-mbim.c11
-rw-r--r--src/mm-iface-modem-sar.c27
-rw-r--r--src/mm-iface-modem-sar.h3
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 */