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.
This commit is contained in:

committed by
Aleksander Morgado

parent
0994087f18
commit
b50c24acd1
@@ -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
|
||||
|
@@ -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,
|
||||
|
@@ -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);
|
||||
|
||||
#endif /* MM_IFACE_MODEM_SAR_H */
|
||||
|
Reference in New Issue
Block a user