aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers-mbim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-modem-helpers-mbim.c')
-rw-r--r--src/mm-modem-helpers-mbim.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-mbim.c b/src/mm-modem-helpers-mbim.c
index c31310ae..f3747886 100644
--- a/src/mm-modem-helpers-mbim.c
+++ b/src/mm-modem-helpers-mbim.c
@@ -201,6 +201,27 @@ mm_mbim_data_class_from_modem_mode (MMModemMode modem_mode,
return mask;
}
+MbimDataClass
+mm_mbim_data_class_from_mbim_data_class_v3_and_subclass (MbimDataClassV3 data_class_v3,
+ MbimDataSubclass data_subclass)
+{
+ MbimDataClass data_class;
+
+ data_class = data_class_v3 & ~(MBIM_DATA_CLASS_5G_NSA | MBIM_DATA_CLASS_5G_SA);
+ if (data_class_v3 & MBIM_DATA_CLASS_V3_5G) {
+ if (data_subclass & MBIM_DATA_SUBCLASS_5G_NR)
+ data_class |= MBIM_DATA_CLASS_5G_SA;
+ else if (data_subclass & (MBIM_DATA_SUBCLASS_5G_ENDC |
+ MBIM_DATA_SUBCLASS_5G_NEDC |
+ MBIM_DATA_SUBCLASS_5G_NGENDC))
+ data_class |= (MBIM_DATA_CLASS_5G_NSA | MBIM_DATA_CLASS_LTE);
+ else if (data_subclass & MBIM_DATA_SUBCLASS_5G_ELTE)
+ data_class |= MBIM_DATA_CLASS_LTE;
+ }
+
+ return data_class;
+}
+
MMModemAccessTechnology
mm_modem_access_technology_from_mbim_data_class (MbimDataClass data_class)
{