diff options
Diffstat (limited to 'src/mm-modem-helpers-qmi.c')
-rw-r--r-- | src/mm-modem-helpers-qmi.c | 49 |
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 \ |