From 9c08e54fb9d2f0b9341c2c98291551d8c9917c78 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Mon, 31 Jan 2022 22:42:48 +0100 Subject: shared-qmi: filter out modes not currently available Do not build the mask of "all" modes based only on the supported radio interfaces, also filter out those modes that would not be available based on the current capabilities enabled. --- src/mm-shared-qmi.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/mm-shared-qmi.c') diff --git a/src/mm-shared-qmi.c b/src/mm-shared-qmi.c index e0d62dc5..1447a7ce 100644 --- a/src/mm-shared-qmi.c +++ b/src/mm-shared-qmi.c @@ -1703,6 +1703,14 @@ mm_shared_qmi_load_supported_modes (MMIfaceModem *self, for (i = 0; i < priv->supported_radio_interfaces->len; i++) ctx.all |= mm_modem_mode_from_qmi_radio_interface (g_array_index (priv->supported_radio_interfaces, QmiDmsRadioInterface, i), self); + /* Filter out those unsupported by the current capabilities */ + if (!(priv->current_capabilities & (MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_CDMA_EVDO))) + ctx.all &= ~(MM_MODEM_MODE_2G | MM_MODEM_MODE_3G); + else if (!(priv->current_capabilities & MM_MODEM_CAPABILITY_LTE)) + ctx.all &= ~MM_MODEM_MODE_4G; + else if (!(priv->current_capabilities & MM_MODEM_CAPABILITY_5GNR)) + ctx.all &= ~MM_MODEM_MODE_5G; + ctx.nas_ssp_supported = (priv->feature_nas_ssp == FEATURE_SUPPORTED); ctx.nas_tp_supported = (priv->feature_nas_tp == FEATURE_SUPPORTED); ctx.current_capabilities = priv->current_capabilities; -- cgit v1.2.3-70-g09d2