aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-07-31 11:13:10 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-08-29 17:26:43 +0200
commitda106845ca1eddb016445181b5d15e5c00dfed77 (patch)
treebb08fac5560ccf96ff0640ff6082664520f18381 /src
parent979ae98feba2ffbf9801ec72a15c92646768d9de (diff)
broadband-modem-qmi: fix flags of supported commands for allowed modes
Diffstat (limited to 'src')
-rw-r--r--src/mm-broadband-modem-qmi.c22
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