diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-base-manager.c | 2 | ||||
-rw-r--r-- | src/mm-iface-modem.c | 18 | ||||
-rw-r--r-- | src/mm-iface-modem.h | 15 | ||||
-rw-r--r-- | src/plugins/fibocom/mm-shared-fibocom.c | 4 |
4 files changed, 24 insertions, 15 deletions
diff --git a/src/mm-base-manager.c b/src/mm-base-manager.c index b928820e..7e0dcdff 100644 --- a/src/mm-base-manager.c +++ b/src/mm-base-manager.c @@ -908,7 +908,7 @@ shutdown_low_power_ready (MMIfaceModem *modem, { g_autoptr(GError) error = NULL; - if (!mm_iface_modem_set_power_state_finish (modem, res, &error)) + if (!mm_iface_modem_set_power_state_finish (modem, res, NULL, &error)) mm_obj_info (ctx->self, "changing to low power state failed: %s", error->message); if (ctx->remove) diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index 4b2a3553..8d4f5290 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -2418,7 +2418,7 @@ set_power_state_ready (MMIfaceModem *self, { GError *error = NULL; - if (!mm_iface_modem_set_power_state_finish (self, res, &error)) { + if (!mm_iface_modem_set_power_state_finish (self, res, NULL, &error)) { mm_obj_warn (self, "failed setting power state '%s': %s", mm_modem_power_state_get_string (ctx->power_state), error->message); if (ctx->disable_after_update) { ctx->saved_error = error; @@ -4152,10 +4152,17 @@ set_power_state_context_free (SetPowerStateContext *ctx) } gboolean -mm_iface_modem_set_power_state_finish (MMIfaceModem *self, - GAsyncResult *res, - GError **error) +mm_iface_modem_set_power_state_finish (MMIfaceModem *self, + GAsyncResult *res, + MMModemPowerState *previous_power_state, + GError **error) { + SetPowerStateContext *ctx; + + ctx = g_task_get_task_data (G_TASK (res)); + if (previous_power_state) + *previous_power_state = ctx->previous_real_power_state; + return g_task_propagate_boolean (G_TASK (res), error); } @@ -4440,6 +4447,7 @@ mm_iface_modem_set_power_state (MMIfaceModem *self, ctx = g_slice_new0 (SetPowerStateContext); ctx->step = SET_POWER_STATE_STEP_FIRST; ctx->requested_power_state = power_state; + ctx->previous_real_power_state = MM_MODEM_POWER_STATE_UNKNOWN; task = g_task_new (self, NULL, callback, user_data); g_task_set_task_data (task, ctx, (GDestroyNotify)set_power_state_context_free); @@ -4562,7 +4570,7 @@ enabling_set_power_state_ready (MMIfaceModem *self, EnablingContext *ctx; GError *error = NULL; - if (!mm_iface_modem_set_power_state_finish (self, res, &error)) { + if (!mm_iface_modem_set_power_state_finish (self, res, NULL, &error)) { g_task_return_error (task, error); g_object_unref (task); return; diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h index 11df05bb..6a82fa26 100644 --- a/src/mm-iface-modem.h +++ b/src/mm-iface-modem.h @@ -499,13 +499,14 @@ gboolean mm_iface_modem_sync_finish (MMIfaceModem *self, #endif /* Allow setting power state */ -void mm_iface_modem_set_power_state (MMIfaceModem *self, - MMModemPowerState power_state, - GAsyncReadyCallback callback, - gpointer user_data); -gboolean mm_iface_modem_set_power_state_finish (MMIfaceModem *self, - GAsyncResult *res, - GError **error); +void mm_iface_modem_set_power_state (MMIfaceModem *self, + MMModemPowerState power_state, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean mm_iface_modem_set_power_state_finish (MMIfaceModem *self, + GAsyncResult *res, + MMModemPowerState *previous_power_state, + GError **error); /* Request lock info update. * It will not only return the lock status, but also set the property values diff --git a/src/plugins/fibocom/mm-shared-fibocom.c b/src/plugins/fibocom/mm-shared-fibocom.c index ff7974b0..bbf6cb46 100644 --- a/src/plugins/fibocom/mm-shared-fibocom.c +++ b/src/plugins/fibocom/mm-shared-fibocom.c @@ -196,7 +196,7 @@ after_attach_apn_modem_power_up_ready (MMIfaceModem *self, ctx = g_task_get_task_data (task); - if (!mm_iface_modem_set_power_state_finish (self, res, &error)) { + if (!mm_iface_modem_set_power_state_finish (self, res, NULL, &error)) { mm_obj_warn (self, "failed to power up modem after attach APN settings update: %s", error->message); if (!ctx->saved_error) ctx->saved_error = g_steal_pointer (&error); @@ -260,7 +260,7 @@ before_attach_apn_modem_power_down_ready (MMIfaceModem *self, { GError *error = NULL; - if (!mm_iface_modem_set_power_state_finish (self, res, &error)) { + if (!mm_iface_modem_set_power_state_finish (self, res, NULL, &error)) { mm_obj_warn (self, "failed to power down modem before attach APN settings update: %s", error->message); g_task_return_error (task, error); g_object_unref (task); |