aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers-qmi.h
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2022-01-31 22:34:56 +0100
committerAleksander Morgado <aleksander@aleksander.es>2022-01-31 22:48:57 +0100
commitc7ff014e07ee5bfcfa4ba7e235c1c234ad77245a (patch)
tree17a67e1efc623248423177687cd1bde080cb53f4 /src/mm-modem-helpers-qmi.h
parentccf0b7eba2bf2abc2c81e5d68dc5872a15b515c2 (diff)
modem-helpers-qmi: multimode devices shouldn't always have 4G/5G only modes
In GSM/UMTS+CDMA/EVDO multimode devices, the 4G and 5G mode switching operations are exclusively limited to the capability selection that has LTE+5GNR exclusively. We cannot allow switching to 4G-only, 5G-only or 4G+5G if the current capabilities have GSM/UMTS or CDMA/EVDO. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/503
Diffstat (limited to 'src/mm-modem-helpers-qmi.h')
-rw-r--r--src/mm-modem-helpers-qmi.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-qmi.h b/src/mm-modem-helpers-qmi.h
index fecefc6d..e4eb9c7e 100644
--- a/src/mm-modem-helpers-qmi.h
+++ b/src/mm-modem-helpers-qmi.h
@@ -24,6 +24,8 @@
#include "mm-port.h"
+#define MM_MODEM_CAPABILITY_MULTIMODE (MM_MODEM_CAPABILITY_GSM_UMTS | MM_MODEM_CAPABILITY_CDMA_EVDO)
+
/*****************************************************************************/
/* QMI/DMS to MM translations */
@@ -160,6 +162,8 @@ gboolean mm_error_from_qmi_loc_indication_status (QmiLocIndicationStatus statu
/* Utility to gather current capabilities from various sources */
typedef struct {
+ /* Whether this is a multimode device or not */
+ gboolean multimode;
/* NAS System Selection Preference */
QmiNasRatModePreference nas_ssp_mode_preference_mask;
/* NAS Technology Preference */
@@ -175,6 +179,8 @@ MMModemCapability mm_current_capability_from_qmi_current_capabilities_context (M
/* Utility to build list of supported capabilities from various sources */
typedef struct {
+ /* Whether this is a multimode device or not */
+ gboolean multimode;
/* NAS System Selection Preference */
gboolean nas_ssp_supported;
/* NAS Technology Preference */
@@ -190,6 +196,8 @@ GArray *mm_supported_capabilities_from_qmi_supported_capabilities_context (MMQmi
/* Utility to build list of supported modes from various sources */
typedef struct {
+ /* Whether this is a multimode device or not */
+ gboolean multimode;
/* NAS System Selection Preference */
gboolean nas_ssp_supported;
/* NAS Technology Preference */