aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson.build2
-rw-r--r--src/mm-broadband-modem-qmi.c3
-rw-r--r--src/mm-modem-helpers-qmi.c65
-rw-r--r--src/mm-modem-helpers-qmi.h3
4 files changed, 45 insertions, 28 deletions
diff --git a/meson.build b/meson.build
index b8746263..96c21c57 100644
--- a/meson.build
+++ b/meson.build
@@ -257,7 +257,7 @@ config_h.set('WITH_MBIM', enable_mbim)
# QMI support (enabled by default)
enable_qmi = get_option('qmi')
if enable_qmi
- qmi_glib_dep = dependency('qmi-glib', version: '>= 1.33.4')
+ qmi_glib_dep = dependency('qmi-glib', version: '>= 1.33.6')
endif
config_h.set('WITH_QMI', enable_qmi)
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c
index 9e28c308..3987a115 100644
--- a/src/mm-broadband-modem-qmi.c
+++ b/src/mm-broadband-modem-qmi.c
@@ -3018,8 +3018,7 @@ modem_3gpp_disable_facility_lock (MMIfaceModem3gpp *self,
task = g_task_new (self, NULL, callback, user_data);
/* Choose facility to disable */
- feature = qmi_personalization_feature_from_mm_modem_3gpp_facility (facility);
- if (feature == QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_UNKNOWN) {
+ if (!qmi_personalization_feature_from_mm_modem_3gpp_facility (facility, &feature)) {
g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_INVALID_ARGS,
"Not supported type of facility lock.");
g_object_unref (task);
diff --git a/src/mm-modem-helpers-qmi.c b/src/mm-modem-helpers-qmi.c
index ff8f0bb9..850ef01c 100644
--- a/src/mm-modem-helpers-qmi.c
+++ b/src/mm-modem-helpers-qmi.c
@@ -2909,8 +2909,8 @@ mm_qmi_uim_get_card_status_output_parse (gpointer log_
guint *o_pers_retries,
GError **error)
{
- QmiMessageUimGetCardStatusOutputCardStatusCardsElement *card;
- QmiMessageUimGetCardStatusOutputCardStatusCardsElementApplicationsElement *app;
+ QmiMessageUimGetCardStatusOutputCardStatusCardsElement *card;
+ QmiMessageUimGetCardStatusOutputCardStatusCardsElementApplicationsElementV2 *app;
GArray *cards;
guint16 index_gw_primary = 0xFFFF;
guint8 gw_primary_slot_i = 0;
@@ -3014,7 +3014,7 @@ mm_qmi_uim_get_card_status_output_parse (gpointer log_
return FALSE;
}
- app = &g_array_index (card->applications, QmiMessageUimGetCardStatusOutputCardStatusCardsElementApplicationsElement, gw_primary_application_i);
+ app = &g_array_index (card->applications, QmiMessageUimGetCardStatusOutputCardStatusCardsElementApplicationsElementV2, gw_primary_application_i);
if ((app->type != QMI_UIM_CARD_APPLICATION_TYPE_SIM) && (app->type != QMI_UIM_CARD_APPLICATION_TYPE_USIM)) {
g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED,
"Unsupported application type found in GW primary application index: %s",
@@ -3122,31 +3122,37 @@ mm_qmi_uim_get_card_status_output_parse (gpointer log_
pin = app->personalization_state == QMI_UIM_CARD_APPLICATION_PERSONALIZATION_STATE_CODE_REQUIRED;
switch (app->personalization_feature) {
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_NETWORK:
lock = (pin ? MM_MODEM_LOCK_PH_NET_PIN : MM_MODEM_LOCK_PH_NET_PUK);
break;
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK_SUBSET:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_NETWORK_SUBSET:
lock = (pin ? MM_MODEM_LOCK_PH_NETSUB_PIN : MM_MODEM_LOCK_PH_NETSUB_PUK);
break;
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_SERVICE_PROVIDER:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_SERVICE_PROVIDER:
lock = (pin ? MM_MODEM_LOCK_PH_SP_PIN : MM_MODEM_LOCK_PH_SP_PUK);
break;
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_CORPORATE:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_CORPORATE:
lock = (pin ? MM_MODEM_LOCK_PH_CORP_PIN : MM_MODEM_LOCK_PH_CORP_PUK);
break;
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_UIM:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_UIM:
if (pin) {
lock = MM_MODEM_LOCK_PH_SIM_PIN;
break;
}
/* fall through */
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_NETWORK_TYPE_1:
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_NETWORK_TYPE_2:
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_HRPD:
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_SERVICE_PROVIDER:
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_CORPORATE:
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_RUIM:
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_UNKNOWN:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_1X_NETWORK_TYPE_1:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_1X_NETWORK_TYPE_2:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_1X_HRPD:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_1X_SERVICE_PROVIDER:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_1X_CORPORATE:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_1X_RUIM:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_UNKNOWN:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_SERVICE_PROVIDER_NAME:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_SP_EHPLMN:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_ICCID:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_IMPI:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_NETWORK_SUBSET_SERVICE_PROVIDER:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_STATUS_GW_CARRIER:
default:
g_set_error (error,
MM_MOBILE_EQUIPMENT_ERROR,
@@ -3237,7 +3243,12 @@ mm_qmi_uim_get_configuration_output_parse (gpointer
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_SERVICE_PROVIDER:
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_CORPORATE:
case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_1X_RUIM:
- case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_UNKNOWN:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_SERVICE_PROVIDER_NAME:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_SP_EHPLMN:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_ICCID:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_IMPI:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK_SUBSET_SERVICE_PROVIDER:
+ case QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_CARRIER:
mm_obj_dbg (log_object, "ignoring lock in UIM feature: %s",
qmi_uim_card_application_personalization_feature_get_string (element->feature));
break;
@@ -3251,25 +3262,31 @@ mm_qmi_uim_get_configuration_output_parse (gpointer
/*****************************************************************************/
-QmiUimCardApplicationPersonalizationFeature
-qmi_personalization_feature_from_mm_modem_3gpp_facility (MMModem3gppFacility facility)
+gboolean
+qmi_personalization_feature_from_mm_modem_3gpp_facility (MMModem3gppFacility facility,
+ QmiUimCardApplicationPersonalizationFeature *o_feature)
{
switch (facility) {
case MM_MODEM_3GPP_FACILITY_NET_PERS:
- return QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK;
+ *o_feature = QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK;
+ return TRUE;
case MM_MODEM_3GPP_FACILITY_NET_SUB_PERS:
- return QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK_SUBSET;
+ *o_feature = QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_NETWORK_SUBSET;
+ return TRUE;
case MM_MODEM_3GPP_FACILITY_PROVIDER_PERS:
- return QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_SERVICE_PROVIDER;
+ *o_feature = QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_SERVICE_PROVIDER;
+ return TRUE;
case MM_MODEM_3GPP_FACILITY_CORP_PERS:
- return QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_CORPORATE;
+ *o_feature = QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_CORPORATE;
+ return TRUE;
case MM_MODEM_3GPP_FACILITY_PH_SIM:
- return QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_UIM;
+ *o_feature = QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_GW_UIM;
+ return TRUE;
case MM_MODEM_3GPP_FACILITY_NONE:
case MM_MODEM_3GPP_FACILITY_SIM:
case MM_MODEM_3GPP_FACILITY_FIXED_DIALING:
case MM_MODEM_3GPP_FACILITY_PH_FSIM:
default:
- return QMI_UIM_CARD_APPLICATION_PERSONALIZATION_FEATURE_UNKNOWN;
+ return FALSE;
}
}
diff --git a/src/mm-modem-helpers-qmi.h b/src/mm-modem-helpers-qmi.h
index 51110d72..2de29a34 100644
--- a/src/mm-modem-helpers-qmi.h
+++ b/src/mm-modem-helpers-qmi.h
@@ -258,6 +258,7 @@ gboolean mm_qmi_uim_get_configuration_output_parse (gpointer
MMModem3gppFacility *o_lock,
GError **error);
-QmiUimCardApplicationPersonalizationFeature qmi_personalization_feature_from_mm_modem_3gpp_facility (MMModem3gppFacility facility);
+gboolean qmi_personalization_feature_from_mm_modem_3gpp_facility (MMModem3gppFacility facility,
+ QmiUimCardApplicationPersonalizationFeature *o_feature);
#endif /* MM_MODEM_HELPERS_QMI_H */