aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers-mbim.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-11-21 16:04:57 +0100
committerAleksander Morgado <aleksander@aleksander.es>2021-12-11 13:13:33 +0100
commit2cf8b7858e0e8c70fa64f2bf10e02968ee001ad3 (patch)
tree067c1de620250459db9784818b97692f9195c9e5 /src/mm-modem-helpers-mbim.c
parent3382e421ccc3ba02d5d78a8e86b179981c457d55 (diff)
broadband-modem-mbim,bearer-mbim: support packet service from MBIMEx v3.0
Whenever MBIMEx v3.0 is enabled, the logic should create requests and parse responses using the updated format. Based on an initial implementation by Som_SP <somashekhar.puttagangaiah@intel.com>
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)
{