diff options
author | Daniele Palmas <dnlplm@gmail.com> | 2022-09-05 11:47:45 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksandermj@chromium.org> | 2023-02-24 13:29:37 +0000 |
commit | 9054266a9a4c43fb6a3d9c5320a51b37a21a90e5 (patch) | |
tree | 8fd9607771a2c4933afa8153108af0e7a1d0946a | |
parent | 69bc9a67a3b77f4a4b6f4cebf6b4bfb2f614d680 (diff) | |
download | ModemManager-9054266a9a4c43fb6a3d9c5320a51b37a21a90e5.tar.gz |
telit: add shared support for 5G modes
(cherry picked from commit 2c235260e4b3df6bfee800fb492ac013c513901d)
-rw-r--r-- | plugins/telit/mm-modem-helpers-telit.c | 18 | ||||
-rw-r--r-- | plugins/telit/mm-shared-telit.c | 22 |
2 files changed, 39 insertions, 1 deletions
diff --git a/plugins/telit/mm-modem-helpers-telit.c b/plugins/telit/mm-modem-helpers-telit.c index c0df80930..ef3ccdf28 100644 --- a/plugins/telit/mm-modem-helpers-telit.c +++ b/plugins/telit/mm-modem-helpers-telit.c @@ -821,7 +821,7 @@ mm_telit_build_modes_list (void) MMModemModeCombination mode; /* 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 */ 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.preferred = MM_MODEM_MODE_NONE; 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; } diff --git a/plugins/telit/mm-shared-telit.c b/plugins/telit/mm-shared-telit.c index 09c122bbc..e00296577 100644 --- a/plugins/telit/mm-shared-telit.c +++ b/plugins/telit/mm-shared-telit.c @@ -215,6 +215,18 @@ mm_shared_telit_load_current_modes_finish (MMIfaceModem *self, case 31: *allowed = (MM_MODEM_MODE_3G | MM_MODEM_MODE_4G); 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: break; } @@ -601,6 +613,8 @@ mm_shared_telit_set_current_modes (MMIfaceModem *self, allowed |= MM_MODEM_MODE_3G; if (g_array_index (priv->supported_modes, MMModemMode, i) & 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; else if (allowed == MM_MODEM_MODE_4G) ws46_mode = 28; + else if (allowed == MM_MODEM_MODE_5G) + ws46_mode = 36; else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G)) { if (mm_iface_modem_is_3gpp_lte (self)) ws46_mode = 29; @@ -621,6 +637,12 @@ mm_shared_telit_set_current_modes (MMIfaceModem *self, ws46_mode = 31; else if (allowed == (MM_MODEM_MODE_2G | MM_MODEM_MODE_3G | MM_MODEM_MODE_4G)) 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 */ if ((ws46_mode < 0) || (preferred != MM_MODEM_MODE_NONE)) { |