broadband-modem-mbim: use a dynamically allocated MbimSarConfigState
It makes reading the code a bit easier.
This commit is contained in:
@@ -6442,28 +6442,28 @@ sar_enable (MMIfaceModemSar *_self,
|
|||||||
GAsyncReadyCallback callback,
|
GAsyncReadyCallback callback,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (_self);
|
MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (_self);
|
||||||
MbimDevice *device;
|
MbimDevice *device;
|
||||||
MbimMessage *message;
|
GTask *task;
|
||||||
GTask *task;
|
g_autoptr(MbimMessage) message = NULL;
|
||||||
/*
|
g_autofree MbimSarConfigState *config_state = NULL;
|
||||||
* the value 0xFFFFFFFF means all antennas
|
|
||||||
* the backoff index set to the current index of modem
|
|
||||||
*/
|
|
||||||
MbimSarConfigState state = {
|
|
||||||
.antenna_index = 0xFFFFFFFF,
|
|
||||||
.backoff_index = mm_iface_modem_sar_get_power_level(_self)
|
|
||||||
};
|
|
||||||
const MbimSarConfigState* states[] = { &state };
|
|
||||||
|
|
||||||
if (!peek_device (self, &device, callback, user_data))
|
if (!peek_device (self, &device, callback, user_data))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
task = g_task_new (self, NULL, callback, user_data);
|
task = g_task_new (self, NULL, callback, user_data);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* the value 0xFFFFFFFF means all antennas
|
||||||
|
* the backoff index set to the current index of modem
|
||||||
|
*/
|
||||||
|
config_state = g_new (MbimSarConfigState, 1);
|
||||||
|
config_state->antenna_index = 0xFFFFFFFF;
|
||||||
|
config_state->backoff_index = mm_iface_modem_sar_get_power_level (_self);
|
||||||
|
|
||||||
message = mbim_message_ms_sar_config_set_new (MBIM_SAR_CONTROL_MODE_OS,
|
message = mbim_message_ms_sar_config_set_new (MBIM_SAR_CONTROL_MODE_OS,
|
||||||
enable ? MBIM_SAR_BACKOFF_STATE_ENABLED : MBIM_SAR_BACKOFF_STATE_DISABLED,
|
enable ? MBIM_SAR_BACKOFF_STATE_ENABLED : MBIM_SAR_BACKOFF_STATE_DISABLED,
|
||||||
G_N_ELEMENTS (states), states, NULL);
|
1, (const MbimSarConfigState **)&config_state, NULL);
|
||||||
|
|
||||||
mbim_device_command (device,
|
mbim_device_command (device,
|
||||||
message,
|
message,
|
||||||
@@ -6471,7 +6471,6 @@ sar_enable (MMIfaceModemSar *_self,
|
|||||||
NULL,
|
NULL,
|
||||||
(GAsyncReadyCallback)sar_config_set_enable_ready,
|
(GAsyncReadyCallback)sar_config_set_enable_ready,
|
||||||
task);
|
task);
|
||||||
mbim_message_unref (message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
@@ -6512,15 +6511,11 @@ sar_set_power_level (MMIfaceModemSar *_self,
|
|||||||
GAsyncReadyCallback callback,
|
GAsyncReadyCallback callback,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (_self);
|
MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (_self);
|
||||||
MbimDevice *device;
|
MbimDevice *device;
|
||||||
MbimMessage *message;
|
GTask *task;
|
||||||
GTask *task;
|
g_autoptr(MbimMessage) message = NULL;
|
||||||
MbimSarConfigState state = {
|
g_autofree MbimSarConfigState *config_state = NULL;
|
||||||
.antenna_index = 0xFFFFFFFF,
|
|
||||||
.backoff_index = power_level
|
|
||||||
};
|
|
||||||
const MbimSarConfigState* states[] = { &state };
|
|
||||||
|
|
||||||
if (!peek_device (self, &device, callback, user_data))
|
if (!peek_device (self, &device, callback, user_data))
|
||||||
return;
|
return;
|
||||||
@@ -6536,18 +6531,25 @@ sar_set_power_level (MMIfaceModemSar *_self,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* the value 0xFFFFFFFF means all antennas
|
||||||
|
* the backoff index set to the input power level
|
||||||
|
*/
|
||||||
|
config_state = g_new (MbimSarConfigState, 1);
|
||||||
|
config_state->antenna_index = 0xFFFFFFFF;
|
||||||
|
config_state->backoff_index = power_level;
|
||||||
|
|
||||||
task = g_task_new (self, NULL, callback, user_data);
|
task = g_task_new (self, NULL, callback, user_data);
|
||||||
|
|
||||||
message = mbim_message_ms_sar_config_set_new (MBIM_SAR_CONTROL_MODE_OS,
|
message = mbim_message_ms_sar_config_set_new (MBIM_SAR_CONTROL_MODE_OS,
|
||||||
MBIM_SAR_BACKOFF_STATE_ENABLED,
|
MBIM_SAR_BACKOFF_STATE_ENABLED,
|
||||||
G_N_ELEMENTS (states), states, NULL);
|
1, (const MbimSarConfigState **)&config_state, NULL);
|
||||||
mbim_device_command (device,
|
mbim_device_command (device,
|
||||||
message,
|
message,
|
||||||
10,
|
10,
|
||||||
NULL,
|
NULL,
|
||||||
(GAsyncReadyCallback)sar_config_set_power_level_ready,
|
(GAsyncReadyCallback)sar_config_set_power_level_ready,
|
||||||
task);
|
task);
|
||||||
mbim_message_unref (message);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
Reference in New Issue
Block a user