aboutsummaryrefslogtreecommitdiff
path: root/src/mm-shared-qmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-shared-qmi.c')
-rw-r--r--src/mm-shared-qmi.c8
1 files changed, 8 insertions, 0 deletions
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;