aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-base-modem.c22
-rw-r--r--src/mm-base-modem.h2
-rw-r--r--src/mm-broadband-modem.c19
3 files changed, 25 insertions, 18 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 0805cedb..a11f15a4 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -1435,6 +1435,28 @@ mm_base_modem_get_product_id (MMBaseModem *self)
/*****************************************************************************/
+static void
+after_sim_switch_disable_ready (MMBaseModem *self,
+ GAsyncResult *res)
+{
+ g_autoptr(GError) error = NULL;
+
+ mm_base_modem_disable_finish (self, res, &error);
+ if (error)
+ mm_obj_err (self, "failed to disable after SIM switch event: %s", error->message);
+ else
+ mm_base_modem_set_valid (self, FALSE);
+}
+
+void
+mm_base_modem_process_sim_switch (MMBaseModem *self)
+{
+ mm_base_modem_set_reprobe (self, TRUE);
+ mm_base_modem_disable (self, (GAsyncReadyCallback) after_sim_switch_disable_ready, NULL);
+}
+
+/*****************************************************************************/
+
static gboolean
base_modem_invalid_idle (MMBaseModem *self)
{
diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h
index 0c4b95f2..ef20ecba 100644
--- a/src/mm-base-modem.h
+++ b/src/mm-base-modem.h
@@ -214,4 +214,6 @@ gboolean mm_base_modem_disable_finish (MMBaseModem *self,
GAsyncResult *res,
GError **error);
+void mm_base_modem_process_sim_switch (MMBaseModem *self);
+
#endif /* MM_BASE_MODEM_H */
diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c
index 9b10f83e..8441a2cf 100644
--- a/src/mm-broadband-modem.c
+++ b/src/mm-broadband-modem.c
@@ -11900,20 +11900,6 @@ mm_broadband_modem_create_device_identifier (MMBroadbandModem *self,
/*****************************************************************************/
-static void
-after_hotswap_event_disable_ready (MMBaseModem *self,
- GAsyncResult *res,
- gpointer user_data)
-{
- GError *error = NULL;
-
- mm_base_modem_disable_finish (self, res, &error);
- if (error) {
- mm_obj_err (self, "failed to disable after hotswap event: %s", error->message);
- g_error_free (error);
- } else
- mm_base_modem_set_valid (self, FALSE);
-}
void
mm_broadband_modem_sim_hot_swap_detected (MMBroadbandModem *self)
@@ -11924,10 +11910,7 @@ mm_broadband_modem_sim_hot_swap_detected (MMBroadbandModem *self)
self->priv->sim_hot_swap_ports_ctx = NULL;
}
- mm_base_modem_set_reprobe (MM_BASE_MODEM (self), TRUE);
- mm_base_modem_disable (MM_BASE_MODEM (self),
- (GAsyncReadyCallback) after_hotswap_event_disable_ready,
- NULL);
+ mm_base_modem_process_sim_switch (MM_BASE_MODEM (self));
}
/*****************************************************************************/