diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-07-31 11:13:10 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-08-29 17:26:43 +0200 |
commit | da106845ca1eddb016445181b5d15e5c00dfed77 (patch) | |
tree | bb08fac5560ccf96ff0640ff6082664520f18381 /src | |
parent | 979ae98feba2ffbf9801ec72a15c92646768d9de (diff) |
broadband-modem-qmi: fix flags of supported commands for allowed modes
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-broadband-modem-qmi.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index 26ad192b..3e7a0acd 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -49,8 +49,9 @@ struct _MMBroadbandModemQmiPrivate { gchar *esn; /* Allowed mode related */ - gboolean has_mode_preference_in_get_system_selection_preference; - gboolean has_get_technology_preference; + gboolean has_system_selection_preference; + gboolean has_mode_preference_in_system_selection_preference; + gboolean has_technology_preference; /* Signal quality related */ gboolean has_get_signal_info; @@ -1705,7 +1706,7 @@ get_technology_preference_ready (QmiClientNas *client, if (g_error_matches (error, QMI_CORE_ERROR, QMI_CORE_ERROR_UNSUPPORTED)) - ctx->self->priv->has_get_technology_preference = FALSE; + ctx->self->priv->has_technology_preference = FALSE; mm_dbg ("QMI operation failed: %s", error->message); g_error_free (error); } else if (!qmi_message_nas_get_technology_preference_output_get_result (output, &error)) { @@ -1810,7 +1811,7 @@ allowed_modes_get_system_selection_preference_ready (QmiClientNas *client, if (g_error_matches (error, QMI_CORE_ERROR, QMI_CORE_ERROR_UNSUPPORTED)) - ctx->self->priv->has_get_technology_preference = FALSE; + ctx->self->priv->has_system_selection_preference = FALSE; mm_dbg ("QMI operation failed: %s", error->message); g_error_free (error); } else if (!qmi_message_nas_get_system_selection_preference_output_get_result (output, &error)) { @@ -1822,7 +1823,7 @@ allowed_modes_get_system_selection_preference_ready (QmiClientNas *client, NULL)) { /* Assuming here that Get System Selection Preference reports *always* all * optional fields that the current message version supports */ - ctx->self->priv->has_get_technology_preference = FALSE; + ctx->self->priv->has_mode_preference_in_system_selection_preference = FALSE; mm_dbg ("Mode preference not reported in system selection preference"); } else { MMModemMode allowed; @@ -1923,8 +1924,10 @@ load_allowed_modes (MMIfaceModem *self, callback, user_data, load_allowed_modes); - ctx->run_get_system_selection_preference = ctx->self->priv->has_mode_preference_in_get_system_selection_preference; - ctx->run_get_technology_preference = ctx->self->priv->has_get_technology_preference; + ctx->run_get_system_selection_preference = + (ctx->self->priv->has_system_selection_preference && + ctx->self->priv->has_mode_preference_in_system_selection_preference); + ctx->run_get_technology_preference = ctx->self->priv->has_technology_preference; load_allowed_modes_context_step (ctx); } @@ -2613,8 +2616,9 @@ mm_broadband_modem_qmi_init (MMBroadbandModemQmi *self) /* Always try to use the newest command available first */ self->priv->has_get_signal_info = TRUE; - self->priv->has_mode_preference_in_get_system_selection_preference = TRUE; - self->priv->has_get_technology_preference = TRUE; + self->priv->has_system_selection_preference = TRUE; + self->priv->has_mode_preference_in_system_selection_preference = TRUE; + self->priv->has_technology_preference = TRUE; } static void |