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))
|
if (!peek_device (self, &device, callback, user_data))
|
||||||
return;
|
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 value 0xFFFFFFFF means all antennas
|
||||||
* the backoff index set to the input power level
|
* 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
|
guint
|
||||||
mm_iface_modem_sar_get_power_level (MMIfaceModemSar *self)
|
mm_iface_modem_sar_get_power_level (MMIfaceModemSar *self)
|
||||||
{
|
{
|
||||||
@@ -222,6 +204,15 @@ handle_set_power_level_auth_ready (MMBaseModem *self,
|
|||||||
return;
|
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_obj_dbg (self, "Set SAR power level to: '%d'", ctx->power_level);
|
||||||
MM_IFACE_MODEM_SAR_GET_INTERFACE (ctx->self)->set_power_level (
|
MM_IFACE_MODEM_SAR_GET_INTERFACE (ctx->self)->set_power_level (
|
||||||
ctx->self,
|
ctx->self,
|
||||||
|
@@ -96,7 +96,6 @@ void mm_iface_modem_sar_shutdown (MMIfaceModemSar *self);
|
|||||||
void mm_iface_modem_sar_bind_simple_status (MMIfaceModemSar*self,
|
void mm_iface_modem_sar_bind_simple_status (MMIfaceModemSar*self,
|
||||||
MMSimpleStatus *status);
|
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 */
|
#endif /* MM_IFACE_MODEM_SAR_H */
|
||||||
|
Reference in New Issue
Block a user