broadband-modem-mbim: fix MM_MODEM_MODE_ANY handling in set current modes
This commit is contained in:
@@ -1223,14 +1223,15 @@ shared_qmi_set_current_modes_ready (MMIfaceModem *self,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
modem_set_current_modes (MMIfaceModem *self,
|
modem_set_current_modes (MMIfaceModem *_self,
|
||||||
MMModemMode allowed,
|
MMModemMode allowed,
|
||||||
MMModemMode preferred,
|
MMModemMode preferred,
|
||||||
GAsyncReadyCallback callback,
|
GAsyncReadyCallback callback,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
GTask *task;
|
MMBroadbandModemMbim *self = MM_BROADBAND_MODEM_MBIM (_self);
|
||||||
MbimDevice *device;
|
GTask *task;
|
||||||
|
MbimDevice *device;
|
||||||
|
|
||||||
if (!peek_device (self, &device, callback, user_data))
|
if (!peek_device (self, &device, callback, user_data))
|
||||||
return;
|
return;
|
||||||
@@ -1238,8 +1239,8 @@ modem_set_current_modes (MMIfaceModem *self,
|
|||||||
task = g_task_new (self, NULL, callback, user_data);
|
task = g_task_new (self, NULL, callback, user_data);
|
||||||
|
|
||||||
#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED
|
#if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED
|
||||||
if (MM_BROADBAND_MODEM_MBIM (self)->priv->qmi_capability_and_mode_switching) {
|
if (self->priv->qmi_capability_and_mode_switching) {
|
||||||
mm_shared_qmi_set_current_modes (self,
|
mm_shared_qmi_set_current_modes (MM_IFACE_MODEM (self),
|
||||||
allowed,
|
allowed,
|
||||||
preferred,
|
preferred,
|
||||||
(GAsyncReadyCallback)shared_qmi_set_current_modes_ready,
|
(GAsyncReadyCallback)shared_qmi_set_current_modes_ready,
|
||||||
@@ -1252,9 +1253,13 @@ modem_set_current_modes (MMIfaceModem *self,
|
|||||||
g_autoptr(MbimMessage) message = NULL;
|
g_autoptr(MbimMessage) message = NULL;
|
||||||
MbimDataClass data_class;
|
MbimDataClass data_class;
|
||||||
|
|
||||||
|
/* Limit ANY to the currently supported modes */
|
||||||
|
if (allowed == MM_MODEM_MODE_ANY)
|
||||||
|
allowed = mm_modem_mode_from_mbim_data_class (self->priv->caps_data_class);
|
||||||
|
|
||||||
data_class = mm_mbim_data_class_from_modem_mode (allowed,
|
data_class = mm_mbim_data_class_from_modem_mode (allowed,
|
||||||
mm_iface_modem_is_3gpp (self),
|
mm_iface_modem_is_3gpp (_self),
|
||||||
mm_iface_modem_is_cdma (self));
|
mm_iface_modem_is_cdma (_self));
|
||||||
g_task_set_task_data (task, GUINT_TO_POINTER (data_class), NULL);
|
g_task_set_task_data (task, GUINT_TO_POINTER (data_class), NULL);
|
||||||
message = mbim_message_register_state_set_new (
|
message = mbim_message_register_state_set_new (
|
||||||
NULL,
|
NULL,
|
||||||
|
Reference in New Issue
Block a user