telit: add shared support for 5G modes
This commit is contained in:
@@ -821,7 +821,7 @@ mm_telit_build_modes_list (void)
|
|||||||
MMModemModeCombination mode;
|
MMModemModeCombination mode;
|
||||||
|
|
||||||
/* Build list of combinations for 3GPP devices */
|
/* Build list of combinations for 3GPP devices */
|
||||||
combinations = g_array_sized_new (FALSE, FALSE, sizeof (MMModemModeCombination), 7);
|
combinations = g_array_sized_new (FALSE, FALSE, sizeof (MMModemModeCombination), 11);
|
||||||
|
|
||||||
/* 2G only */
|
/* 2G only */
|
||||||
mode.allowed = MM_MODEM_MODE_2G;
|
mode.allowed = MM_MODEM_MODE_2G;
|
||||||
@@ -851,6 +851,22 @@ mm_telit_build_modes_list (void)
|
|||||||
mode.allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G | MM_MODEM_MODE_4G);
|
mode.allowed = (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G | MM_MODEM_MODE_4G);
|
||||||
mode.preferred = MM_MODEM_MODE_NONE;
|
mode.preferred = MM_MODEM_MODE_NONE;
|
||||||
g_array_append_val (combinations, mode);
|
g_array_append_val (combinations, mode);
|
||||||
|
/* 5G only */
|
||||||
|
mode.allowed = MM_MODEM_MODE_5G;
|
||||||
|
mode.preferred = MM_MODEM_MODE_NONE;
|
||||||
|
g_array_append_val (combinations, mode);
|
||||||
|
/* 3G and 5G */
|
||||||
|
mode.allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_5G);
|
||||||
|
mode.preferred = MM_MODEM_MODE_NONE;
|
||||||
|
g_array_append_val (combinations, mode);
|
||||||
|
/* 4G and 5G */
|
||||||
|
mode.allowed = (MM_MODEM_MODE_4G | MM_MODEM_MODE_5G);
|
||||||
|
mode.preferred = MM_MODEM_MODE_NONE;
|
||||||
|
g_array_append_val (combinations, mode);
|
||||||
|
/* 3G, 4G and 5G */
|
||||||
|
mode.allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_4G | MM_MODEM_MODE_5G);
|
||||||
|
mode.preferred = MM_MODEM_MODE_NONE;
|
||||||
|
g_array_append_val (combinations, mode);
|
||||||
|
|
||||||
return combinations;
|
return combinations;
|
||||||
}
|
}
|
||||||
|
@@ -215,6 +215,18 @@ mm_shared_telit_load_current_modes_finish (MMIfaceModem *self,
|
|||||||
case 31:
|
case 31:
|
||||||
*allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_4G);
|
*allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_4G);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
case 36:
|
||||||
|
*allowed = MM_MODEM_MODE_5G;
|
||||||
|
return TRUE;
|
||||||
|
case 37:
|
||||||
|
*allowed = (MM_MODEM_MODE_4G | MM_MODEM_MODE_5G);
|
||||||
|
return TRUE;
|
||||||
|
case 38:
|
||||||
|
*allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_4G | MM_MODEM_MODE_5G);
|
||||||
|
return TRUE;
|
||||||
|
case 40:
|
||||||
|
*allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_5G);
|
||||||
|
return TRUE;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -601,6 +613,8 @@ mm_shared_telit_set_current_modes (MMIfaceModem *self,
|
|||||||
allowed |= MM_MODEM_MODE_3G;
|
allowed |= MM_MODEM_MODE_3G;
|
||||||
if (g_array_index (priv->supported_modes, MMModemMode, i) & MM_MODEM_MODE_4G)
|
if (g_array_index (priv->supported_modes, MMModemMode, i) & MM_MODEM_MODE_4G)
|
||||||
allowed |= MM_MODEM_MODE_4G;
|
allowed |= MM_MODEM_MODE_4G;
|
||||||
|
if (g_array_index (priv->supported_modes, MMModemMode, i) & MM_MODEM_MODE_5G)
|
||||||
|
allowed |= MM_MODEM_MODE_5G;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -610,6 +624,8 @@ mm_shared_telit_set_current_modes (MMIfaceModem *self,
|
|||||||
ws46_mode = 22;
|
ws46_mode = 22;
|
||||||
else if (allowed == MM_MODEM_MODE_4G)
|
else if (allowed == MM_MODEM_MODE_4G)
|
||||||
ws46_mode = 28;
|
ws46_mode = 28;
|
||||||
|
else if (allowed == MM_MODEM_MODE_5G)
|
||||||
|
ws46_mode = 36;
|
||||||
else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G)) {
|
else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G)) {
|
||||||
if (mm_iface_modem_is_3gpp_lte (self))
|
if (mm_iface_modem_is_3gpp_lte (self))
|
||||||
ws46_mode = 29;
|
ws46_mode = 29;
|
||||||
@@ -621,6 +637,12 @@ mm_shared_telit_set_current_modes (MMIfaceModem *self,
|
|||||||
ws46_mode = 31;
|
ws46_mode = 31;
|
||||||
else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G | MM_MODEM_MODE_4G))
|
else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G | MM_MODEM_MODE_4G))
|
||||||
ws46_mode = 25;
|
ws46_mode = 25;
|
||||||
|
else if (allowed == (MM_MODEM_MODE_3G | MM_MODEM_MODE_5G))
|
||||||
|
ws46_mode = 40;
|
||||||
|
else if (allowed == (MM_MODEM_MODE_4G | MM_MODEM_MODE_5G))
|
||||||
|
ws46_mode = 37;
|
||||||
|
else if (allowed == (MM_MODEM_MODE_3G |MM_MODEM_MODE_4G | MM_MODEM_MODE_5G))
|
||||||
|
ws46_mode = 38;
|
||||||
|
|
||||||
/* Telit modems do not support preferred mode selection */
|
/* Telit modems do not support preferred mode selection */
|
||||||
if ((ws46_mode < 0) || (preferred != MM_MODEM_MODE_NONE)) {
|
if ((ws46_mode < 0) || (preferred != MM_MODEM_MODE_NONE)) {
|
||||||
|
Reference in New Issue
Block a user