aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers-qmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-modem-helpers-qmi.c')
-rw-r--r--src/mm-modem-helpers-qmi.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-qmi.c b/src/mm-modem-helpers-qmi.c
index b5267f8d..c1c36bb3 100644
--- a/src/mm-modem-helpers-qmi.c
+++ b/src/mm-modem-helpers-qmi.c
@@ -901,6 +901,27 @@ mm_modem_capability_from_qmi_rat_mode_preference (QmiNasRatModePreference qmi)
return caps;
}
+QmiNasRatModePreference
+mm_modem_capability_to_qmi_rat_mode_preference (MMModemCapability caps)
+{
+ QmiNasRatModePreference qmi = 0;
+
+ if (caps & MM_MODEM_CAPABILITY_CDMA_EVDO) {
+ qmi |= QMI_NAS_RAT_MODE_PREFERENCE_CDMA_1X;
+ qmi |= QMI_NAS_RAT_MODE_PREFERENCE_CDMA_1XEVDO;
+ }
+
+ if (caps & MM_MODEM_CAPABILITY_GSM_UMTS) {
+ qmi |= QMI_NAS_RAT_MODE_PREFERENCE_GSM;
+ qmi |= QMI_NAS_RAT_MODE_PREFERENCE_UMTS;
+ }
+
+ if (caps & MM_MODEM_CAPABILITY_LTE)
+ qmi |= QMI_NAS_RAT_MODE_PREFERENCE_LTE;
+
+ return qmi;
+}
+
/*****************************************************************************/
MMModemCapability
@@ -931,6 +952,34 @@ mm_modem_capability_from_qmi_radio_technology_preference (QmiNasRadioTechnologyP
return caps;
}
+QmiNasRadioTechnologyPreference
+mm_modem_capability_to_qmi_radio_technology_preference (MMModemCapability caps)
+{
+ QmiNasRatModePreference qmi = 0;
+
+ /* It is not expected to have a modem supporting 3GPP and 3GPP2 at the same
+ * time but not supporting SSP. */
+ g_warn_if_fail (caps & MM_MODEM_CAPABILITY_GSM_UMTS &&
+ caps & MM_MODEM_CAPABILITY_CDMA_EVDO);
+
+ if (caps & MM_MODEM_CAPABILITY_GSM_UMTS) {
+ qmi |= QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_3GPP;
+ qmi |= QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_AMPS_OR_GSM;
+ qmi |= QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_CDMA_OR_WCDMA;
+ }
+
+ if (caps & MM_MODEM_CAPABILITY_CDMA_EVDO) {
+ qmi |= QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_3GPP2;
+ qmi |= QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_CDMA_OR_WCDMA;
+ qmi |= QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_HDR;
+ }
+
+ if (caps & MM_MODEM_CAPABILITY_LTE)
+ qmi |= QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_LTE;
+
+ return qmi;
+}
+
/*****************************************************************************/
#define ALL_3GPP2_BANDS \