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.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-qmi.c b/src/mm-modem-helpers-qmi.c
index c170dba6..0b5c4647 100644
--- a/src/mm-modem-helpers-qmi.c
+++ b/src/mm-modem-helpers-qmi.c
@@ -630,6 +630,63 @@ mm_modem_mode_to_qmi_rat_mode_preference (MMModemMode mode,
/*****************************************************************************/
+MMModemCapability
+mm_modem_capability_from_qmi_rat_mode_preference (QmiNasRatModePreference qmi)
+{
+ MMModemCapability caps = MM_MODEM_CAPABILITY_NONE;
+
+ if (qmi & QMI_NAS_RAT_MODE_PREFERENCE_CDMA_1X)
+ caps |= MM_MODEM_CAPABILITY_CDMA_EVDO;
+
+ if (qmi & QMI_NAS_RAT_MODE_PREFERENCE_CDMA_1XEVDO)
+ caps |= MM_MODEM_CAPABILITY_CDMA_EVDO;
+
+ if (qmi & QMI_NAS_RAT_MODE_PREFERENCE_GSM)
+ caps |= MM_MODEM_CAPABILITY_GSM_UMTS;
+
+ if (qmi & QMI_NAS_RAT_MODE_PREFERENCE_UMTS)
+ caps |= MM_MODEM_CAPABILITY_GSM_UMTS;
+
+ if (qmi & QMI_NAS_RAT_MODE_PREFERENCE_LTE)
+ caps |= MM_MODEM_CAPABILITY_LTE;
+
+ /* FIXME: LTE Advanced? */
+
+ return caps;
+}
+
+/*****************************************************************************/
+
+MMModemCapability
+mm_modem_capability_from_qmi_radio_technology_preference (QmiNasRadioTechnologyPreference qmi)
+{
+ MMModemCapability caps = MM_MODEM_CAPABILITY_NONE;
+
+ if (qmi & QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_3GPP2) {
+ /* Skip AMPS */
+ if (qmi & QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_CDMA_OR_WCDMA)
+ caps |= MM_MODEM_CAPABILITY_CDMA_EVDO; /* CDMA */
+ if (qmi & QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_HDR)
+ caps |= MM_MODEM_CAPABILITY_CDMA_EVDO; /* EV-DO */
+ }
+
+ if (qmi & QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_3GPP) {
+ if (qmi & QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_AMPS_OR_GSM)
+ caps |= MM_MODEM_CAPABILITY_GSM_UMTS; /* GSM */
+ if (qmi & QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_CDMA_OR_WCDMA)
+ caps |= MM_MODEM_CAPABILITY_GSM_UMTS; /* WCDMA */
+ }
+
+ if (qmi & QMI_NAS_RADIO_TECHNOLOGY_PREFERENCE_LTE)
+ caps |= MM_MODEM_CAPABILITY_LTE;
+
+ /* FIXME: LTE Advanced? */
+
+ return caps;
+}
+
+/*****************************************************************************/
+
MMModemMode
mm_modem_mode_from_qmi_gsm_wcdma_acquisition_order_preference (QmiNasGsmWcdmaAcquisitionOrderPreference qmi)
{