[PATCH 6/8] telit: update frequency bands support

Aleksander Morgado aleksander at aleksander.es
Thu Sep 7 11:02:38 UTC 2017


On 22/08/17 08:18, Aleksander Morgado wrote:
> Updated to use the non-deprecated MMModemBand values.
> 
> Also, use explicit enums for 2G/3G bands when building internal flags,
> as relying on UTRAN band 7 (MM_MODEM_BAND_U2600) being greater than
> UTRAN bands 8 and 9 is a MM implementation issue.

Pushed to git master.

> ---
>  plugins/telit/mm-modem-helpers-telit.c            | 97 ++++++++++++++---------
>  plugins/telit/tests/test-mm-modem-helpers-telit.c | 68 ++++++++--------
>  2 files changed, 93 insertions(+), 72 deletions(-)
> 
> diff --git a/plugins/telit/mm-modem-helpers-telit.c b/plugins/telit/mm-modem-helpers-telit.c
> index 32663cdb..1e8de672 100644
> --- a/plugins/telit/mm-modem-helpers-telit.c
> +++ b/plugins/telit/mm-modem-helpers-telit.c
> @@ -46,14 +46,35 @@ mm_telit_get_band_flag (GArray *bands_array,
>      for (i = 0; i < bands_array->len; i++) {
>          MMModemBand band = g_array_index (bands_array, MMModemBand, i);
>  
> -        if (flag2g != NULL &&
> -            band > MM_MODEM_BAND_UNKNOWN && band <= MM_MODEM_BAND_G850) {
> -            mask2g += 1 << band;
> +        if (flag2g != NULL) {
> +            switch (band) {
> +                case MM_MODEM_BAND_EGSM:
> +                case MM_MODEM_BAND_DCS:
> +                case MM_MODEM_BAND_PCS:
> +                case MM_MODEM_BAND_G850:
> +                    mask2g += 1 << band;
> +                    break;
> +                default:
> +                    break;
> +            }
>          }
>  
> -        if (flag3g != NULL &&
> -            band >= MM_MODEM_BAND_U2100 && band <= MM_MODEM_BAND_U2600) {
> -            mask3g += 1 << band;
> +        if (flag3g != NULL) {
> +            switch (band) {
> +                case MM_MODEM_BAND_UTRAN_1:
> +                case MM_MODEM_BAND_UTRAN_2:
> +                case MM_MODEM_BAND_UTRAN_3:
> +                case MM_MODEM_BAND_UTRAN_4:
> +                case MM_MODEM_BAND_UTRAN_5:
> +                case MM_MODEM_BAND_UTRAN_6:
> +                case MM_MODEM_BAND_UTRAN_7:
> +                case MM_MODEM_BAND_UTRAN_8:
> +                case MM_MODEM_BAND_UTRAN_9:
> +                    mask3g += 1 << band;
> +                    break;
> +                default:
> +                    break;
> +            }
>          }
>  
>           if (flag4g != NULL &&
> @@ -79,25 +100,25 @@ mm_telit_get_band_flag (GArray *bands_array,
>  
>      /* Get 3G flag */
>      if (flag3g != NULL) {
> -        if (mask3g == (1 << MM_MODEM_BAND_U2100))
> +        if (mask3g == (1 << MM_MODEM_BAND_UTRAN_1))
>              *flag3g = 0;
> -        else if (mask3g == (1 << MM_MODEM_BAND_U1900))
> +        else if (mask3g == (1 << MM_MODEM_BAND_UTRAN_2))
>              *flag3g = 1;
> -        else if (mask3g == (1 << MM_MODEM_BAND_U850))
> +        else if (mask3g == (1 << MM_MODEM_BAND_UTRAN_5))
>              *flag3g = 2;
> -        else if (mask3g == ((1 << MM_MODEM_BAND_U2100) +
> -                            (1 << MM_MODEM_BAND_U1900) +
> -                            (1 << MM_MODEM_BAND_U850)))
> +        else if (mask3g == ((1 << MM_MODEM_BAND_UTRAN_1) +
> +                            (1 << MM_MODEM_BAND_UTRAN_2) +
> +                            (1 << MM_MODEM_BAND_UTRAN_5)))
>              *flag3g = 3;
> -        else if (mask3g == ((1 << MM_MODEM_BAND_U1900) +
> -                            (1 << MM_MODEM_BAND_U850)))
> +        else if (mask3g == ((1 << MM_MODEM_BAND_UTRAN_2) +
> +                            (1 << MM_MODEM_BAND_UTRAN_5)))
>              *flag3g = 4;
> -        else if (mask3g == (1 << MM_MODEM_BAND_U900))
> +        else if (mask3g == (1 << MM_MODEM_BAND_UTRAN_8))
>              *flag3g = 5;
> -        else if (mask3g == ((1 << MM_MODEM_BAND_U2100) +
> -                            (1 << MM_MODEM_BAND_U900)))
> +        else if (mask3g == ((1 << MM_MODEM_BAND_UTRAN_1) +
> +                            (1 << MM_MODEM_BAND_UTRAN_8)))
>              *flag3g = 6;
> -        else if (mask3g == (1 << MM_MODEM_BAND_U17IV))
> +        else if (mask3g == (1 << MM_MODEM_BAND_UTRAN_4))
>              *flag3g = 7;
>          else
>              *flag3g = -1;
> @@ -378,27 +399,27 @@ mm_telit_get_3g_mm_bands (GMatchInfo *match_info,
>      gboolean ret = TRUE;
>  
>      TelitToMMBandMap map [] = {
> -        { BND_FLAG_0, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_UNKNOWN} },
> -        { BND_FLAG_1, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_UNKNOWN} },
> -        { BND_FLAG_2, { MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN} },
> -        { BND_FLAG_3, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U1900, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN} },
> -        { BND_FLAG_4, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN} },
> -        { BND_FLAG_5, { MM_MODEM_BAND_U900, MM_MODEM_BAND_UNKNOWN} },
> -        { BND_FLAG_6, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U900, MM_MODEM_BAND_UNKNOWN} },
> -        { BND_FLAG_7, { MM_MODEM_BAND_U17IV, MM_MODEM_BAND_UNKNOWN} },
> -        { BND_FLAG_8, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_9, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U900, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_10, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U17IV, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_12, { MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN}},
> +        { BND_FLAG_0, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UNKNOWN} },
> +        { BND_FLAG_1, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UNKNOWN} },
> +        { BND_FLAG_2, { MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN} },
> +        { BND_FLAG_3, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN} },
> +        { BND_FLAG_4, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN} },
> +        { BND_FLAG_5, { MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UNKNOWN} },
> +        { BND_FLAG_6, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UNKNOWN} },
> +        { BND_FLAG_7, { MM_MODEM_BAND_UTRAN_4, MM_MODEM_BAND_UNKNOWN} },
> +        { BND_FLAG_8, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN }},
> +        { BND_FLAG_9, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN }},
> +        { BND_FLAG_10, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_4, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN }},
> +        { BND_FLAG_12, { MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN}},
>          { BND_FLAG_13, { MM_MODEM_BAND_U1800, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_14, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U900, MM_MODEM_BAND_U17IV, MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_15, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U900, MM_MODEM_BAND_U1800, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_16, { MM_MODEM_BAND_U900, MM_MODEM_BAND_U850, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_17, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U17IV, MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_18, { MM_MODEM_BAND_U2100, MM_MODEM_BAND_U1900, MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN}},
> -        { BND_FLAG_19, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN }},
> -        { BND_FLAG_20, { MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN}},
> -        { BND_FLAG_21, { MM_MODEM_BAND_U1900, MM_MODEM_BAND_U850, MM_MODEM_BAND_U800, MM_MODEM_BAND_UNKNOWN}},
> +        { BND_FLAG_14, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UTRAN_4, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN }},
> +        { BND_FLAG_15, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_U1800, MM_MODEM_BAND_UNKNOWN }},
> +        { BND_FLAG_16, { MM_MODEM_BAND_UTRAN_8, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UNKNOWN }},
> +        { BND_FLAG_17, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_4, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN }},
> +        { BND_FLAG_18, { MM_MODEM_BAND_UTRAN_1, MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN}},
> +        { BND_FLAG_19, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN }},
> +        { BND_FLAG_20, { MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN}},
> +        { BND_FLAG_21, { MM_MODEM_BAND_UTRAN_2, MM_MODEM_BAND_UTRAN_5, MM_MODEM_BAND_UTRAN_6, MM_MODEM_BAND_UNKNOWN}},
>          { BND_FLAG_UNKNOWN, {}},
>      };
>  
> diff --git a/plugins/telit/tests/test-mm-modem-helpers-telit.c b/plugins/telit/tests/test-mm-modem-helpers-telit.c
> index 5f8638bc..c7cff88b 100644
> --- a/plugins/telit/tests/test-mm-modem-helpers-telit.c
> +++ b/plugins/telit/tests/test-mm-modem-helpers-telit.c
> @@ -159,40 +159,40 @@ static BNDResponseTest supported_band_mapping_tests [] = {
>                                                        MM_MODEM_BAND_DCS,
>                                                        MM_MODEM_BAND_PCS,
>                                                        MM_MODEM_BAND_G850,
> -                                                      MM_MODEM_BAND_U2100,
> -                                                      MM_MODEM_BAND_U850,
> -                                                      MM_MODEM_BAND_U900} },
> +                                                      MM_MODEM_BAND_UTRAN_1,
> +                                                      MM_MODEM_BAND_UTRAN_5,
> +                                                      MM_MODEM_BAND_UTRAN_8 } },
>      { "#BND: (0,3),(0,2,5,6)", TRUE, TRUE, FALSE, 7, { MM_MODEM_BAND_EGSM,
>                                                         MM_MODEM_BAND_DCS,
>                                                         MM_MODEM_BAND_PCS,
>                                                         MM_MODEM_BAND_G850,
> -                                                       MM_MODEM_BAND_U2100,
> -                                                       MM_MODEM_BAND_U850,
> -                                                       MM_MODEM_BAND_U900} },
> +                                                       MM_MODEM_BAND_UTRAN_1,
> +                                                       MM_MODEM_BAND_UTRAN_5,
> +                                                       MM_MODEM_BAND_UTRAN_8} },
>      { "#BND: (0,2),(0,2,5,6)", TRUE, TRUE, FALSE, 6, { MM_MODEM_BAND_EGSM,
>                                                         MM_MODEM_BAND_DCS,
>                                                         MM_MODEM_BAND_G850,
> -                                                       MM_MODEM_BAND_U2100,
> -                                                       MM_MODEM_BAND_U850,
> -                                                       MM_MODEM_BAND_U900} },
> +                                                       MM_MODEM_BAND_UTRAN_1,
> +                                                       MM_MODEM_BAND_UTRAN_5,
> +                                                       MM_MODEM_BAND_UTRAN_8} },
>      { "#BND: (0,2),(0-4,5,6)", TRUE, TRUE, FALSE, 7, { MM_MODEM_BAND_EGSM,
>                                                         MM_MODEM_BAND_DCS,
>                                                         MM_MODEM_BAND_G850,
> -                                                       MM_MODEM_BAND_U2100,
> -                                                       MM_MODEM_BAND_U1900,
> -                                                       MM_MODEM_BAND_U850,
> -                                                       MM_MODEM_BAND_U900} },
> +                                                       MM_MODEM_BAND_UTRAN_1,
> +                                                       MM_MODEM_BAND_UTRAN_2,
> +                                                       MM_MODEM_BAND_UTRAN_5,
> +                                                       MM_MODEM_BAND_UTRAN_8} },
>      { "#BND: (0-3),(0,2,5,6),(1-1)", TRUE, TRUE, TRUE, 8, { MM_MODEM_BAND_EGSM,
>                                                           MM_MODEM_BAND_DCS,
>                                                           MM_MODEM_BAND_PCS,
>                                                           MM_MODEM_BAND_G850,
> -                                                         MM_MODEM_BAND_U2100,
> -                                                         MM_MODEM_BAND_U850,
> -                                                         MM_MODEM_BAND_U900,
> +                                                         MM_MODEM_BAND_UTRAN_1,
> +                                                         MM_MODEM_BAND_UTRAN_5,
> +                                                         MM_MODEM_BAND_UTRAN_8,
>                                                           MM_MODEM_BAND_EUTRAN_1} },
>      { "#BND: (0),(0),(1-3)", TRUE, TRUE, TRUE, 5, { MM_MODEM_BAND_EGSM,
>                                                      MM_MODEM_BAND_DCS,
> -                                                    MM_MODEM_BAND_U2100,
> +                                                    MM_MODEM_BAND_UTRAN_1,
>                                                      MM_MODEM_BAND_EUTRAN_1,
>                                                      MM_MODEM_BAND_EUTRAN_2} },
>      { "#BND: (0),(0),(1-3)", FALSE, FALSE, TRUE, 2, { MM_MODEM_BAND_EUTRAN_1,
> @@ -243,32 +243,32 @@ static BNDResponseTest current_band_mapping_tests [] = {
>      },
>      { "#BND: 0,5", TRUE, TRUE, FALSE, 3, { MM_MODEM_BAND_EGSM,
>                                             MM_MODEM_BAND_DCS,
> -                                           MM_MODEM_BAND_U900
> +                                           MM_MODEM_BAND_UTRAN_8
>                                           }
>      },
>      { "#BND: 1,3", TRUE, TRUE, FALSE, 5, { MM_MODEM_BAND_EGSM,
>                                             MM_MODEM_BAND_PCS,
> -                                           MM_MODEM_BAND_U2100,
> -                                           MM_MODEM_BAND_U1900,
> -                                           MM_MODEM_BAND_U850,
> +                                           MM_MODEM_BAND_UTRAN_1,
> +                                           MM_MODEM_BAND_UTRAN_2,
> +                                           MM_MODEM_BAND_UTRAN_5,
>                                           }
>      },
>      { "#BND: 2,7", TRUE, TRUE, FALSE, 3, { MM_MODEM_BAND_DCS,
>                                             MM_MODEM_BAND_G850,
> -                                           MM_MODEM_BAND_U17IV
> -                                         },
> +                                           MM_MODEM_BAND_UTRAN_4
> +                                         }
>      },
>      { "#BND: 3,0,1", TRUE, TRUE, TRUE, 4, { MM_MODEM_BAND_PCS,
>                                              MM_MODEM_BAND_G850,
> -                                            MM_MODEM_BAND_U2100,
> +                                            MM_MODEM_BAND_UTRAN_1,
>                                              MM_MODEM_BAND_EUTRAN_1
>                                            }
>      },
>      { "#BND: 0,0,3", TRUE, FALSE, TRUE, 4, { MM_MODEM_BAND_EGSM,
> -                                            MM_MODEM_BAND_DCS,
> -                                            MM_MODEM_BAND_EUTRAN_1,
> -                                            MM_MODEM_BAND_EUTRAN_2
> -                                          }
> +                                             MM_MODEM_BAND_DCS,
> +                                             MM_MODEM_BAND_EUTRAN_1,
> +                                             MM_MODEM_BAND_EUTRAN_2
> +                                           }
>      },
>      { "#BND: 0,0,3", FALSE, FALSE, TRUE, 2, { MM_MODEM_BAND_EUTRAN_1,
>                                                MM_MODEM_BAND_EUTRAN_2
> @@ -373,12 +373,12 @@ static void
>  test_telit_get_3g_bnd_flag (void)
>  {
>      GArray *bands_array;
> -    MMModemBand u2100 = MM_MODEM_BAND_U2100;
> -    MMModemBand u1900 = MM_MODEM_BAND_U1900;
> -    MMModemBand u850 = MM_MODEM_BAND_U850;
> -    MMModemBand u900 = MM_MODEM_BAND_U900;
> -    MMModemBand u17iv = MM_MODEM_BAND_U17IV;
> -    MMModemBand u17ix = MM_MODEM_BAND_U17IX;
> +    MMModemBand u2100 = MM_MODEM_BAND_UTRAN_1;
> +    MMModemBand u1900 = MM_MODEM_BAND_UTRAN_2;
> +    MMModemBand u850 = MM_MODEM_BAND_UTRAN_5;
> +    MMModemBand u900 = MM_MODEM_BAND_UTRAN_8;
> +    MMModemBand u17iv = MM_MODEM_BAND_UTRAN_4;
> +    MMModemBand u17ix = MM_MODEM_BAND_UTRAN_9;
>      gint flag;
>  
>      /* Test flag 0 */
> 


-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list