aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-helpers-qmi.h
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2012-08-31 12:30:13 -0500
committerDan Williams <dcbw@redhat.com>2012-08-31 12:30:13 -0500
commit6f2c440b7be4e843c1eb193eb04f111924a89dfd (patch)
tree606772f6942301157f12b643139fa8c408cc6ba0 /src/mm-modem-helpers-qmi.h
parent04ce8b567cca9f3ab125f59af3bd8bfed554adce (diff)
broadband-modem-qmi: fix handling of current and overall modem capabilities
Current capabilities is the set of *active* radios that can be used right now. Modem capabilities are the set of all radios the modem could use, if some action were performed to enable them if they are not enabled already (firmware reload, changing allowed mode, etc). For QMI devices, the DMS Get Capabilities command represents all radios, and thus "modem capabilities". But to read *current* capabilities, ie active radios, we need to query the NAS System Selection Preference and grab the "mode preference" TLV. Unfortunately that is only available with NAS >= 1.1, which means older Gobi devices (1K and 2K) don't support it. So for older devices, we try to get the Technology Preference (which takes into account user-requested limitations) and then mask that with the DMS Get Capabilities result for a best-effort current capabilities. For example, the Pantech UML290VW reports DMS Get Capabilities of "cdma, evdo, gsm, umts, lte", but a more limited SSP mode preference according to what modes are actually enabled. Gobi 1K devices don't support SSP, and the DMS Get Capabilities reports cdma/evdo or gsm/umts depending on the currently loaded firmware. Previous to this patch, ModemManager reported all modes as available on the UML290, ignoring what modes were actually enabled.
Diffstat (limited to 'src/mm-modem-helpers-qmi.h')
-rw-r--r--src/mm-modem-helpers-qmi.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mm-modem-helpers-qmi.h b/src/mm-modem-helpers-qmi.h
index 4a69653b..5c5df9dd 100644
--- a/src/mm-modem-helpers-qmi.h
+++ b/src/mm-modem-helpers-qmi.h
@@ -52,6 +52,10 @@ QmiNasRatModePreference mm_modem_mode_to_qmi_rat_mode_preference (MMModemMode mo
gboolean is_cdma,
gboolean is_3gpp);
+MMModemCapability mm_modem_capability_from_qmi_rat_mode_preference (QmiNasRatModePreference qmi);
+
+MMModemCapability mm_modem_capability_from_qmi_radio_technology_preference (QmiNasRadioTechnologyPreference qmi);
+
MMModemMode mm_modem_mode_from_qmi_gsm_wcdma_acquisition_order_preference (QmiNasGsmWcdmaAcquisitionOrderPreference qmi);
QmiNasGsmWcdmaAcquisitionOrderPreference mm_modem_mode_to_qmi_gsm_wcdma_acquisition_order_preference (MMModemMode mode);