diff options
author | Dan Williams <dcbw@redhat.com> | 2012-08-31 12:30:13 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2012-08-31 12:30:13 -0500 |
commit | 6f2c440b7be4e843c1eb193eb04f111924a89dfd (patch) | |
tree | 606772f6942301157f12b643139fa8c408cc6ba0 /src/mm-modem-helpers-qmi.h | |
parent | 04ce8b567cca9f3ab125f59af3bd8bfed554adce (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.h | 4 |
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); |