diff options
Diffstat (limited to 'src/mm-modem-helpers-qmi.c')
-rw-r--r-- | src/mm-modem-helpers-qmi.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-qmi.c b/src/mm-modem-helpers-qmi.c index 7b71a785..8228438d 100644 --- a/src/mm-modem-helpers-qmi.c +++ b/src/mm-modem-helpers-qmi.c @@ -12,6 +12,7 @@ * * Copyright (C) 2012-2018 Google, Inc. * Copyright (C) 2018 Aleksander Morgado <aleksander@aleksander.es> + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. */ #include <string.h> @@ -351,10 +352,43 @@ dms_add_extended_qmi_lte_bands (GArray *mm_bands, } } +static void +dms_add_qmi_nr5g_bands (GArray *mm_bands, + GArray *qmi_bands, + gpointer log_object) +{ + guint i; + + g_assert (mm_bands != NULL); + + if (!qmi_bands) + return; + + for (i = 0; i < qmi_bands->len; i++) { + guint16 val; + + val = g_array_index (qmi_bands, guint16, i); + + /* MM_MODEM_BAND_NGRAN_1 = 301, + * ... + * MM_MODEM_BAND_NGRAN_261 = 561 + */ + if (val < 1 || val > 261) + mm_obj_dbg (log_object, "unexpected NR5G band supported by module: NGRAN %u", val); + else { + MMModemBand band; + + band = (MMModemBand)(val + MM_MODEM_BAND_NGRAN_1 - 1); + g_array_append_val (mm_bands, band); + } + } +} + GArray * mm_modem_bands_from_qmi_band_capabilities (QmiDmsBandCapability qmi_bands, QmiDmsLteBandCapability qmi_lte_bands, GArray *extended_qmi_lte_bands, + GArray *qmi_nr5g_bands, gpointer log_object) { GArray *mm_bands; @@ -367,6 +401,9 @@ mm_modem_bands_from_qmi_band_capabilities (QmiDmsBandCapability qmi_bands, else dms_add_qmi_lte_bands (mm_bands, qmi_lte_bands); + if (qmi_nr5g_bands) + dms_add_qmi_nr5g_bands (mm_bands, qmi_nr5g_bands, log_object); + return mm_bands; } |