diff options
Diffstat (limited to 'plugins/quectel')
-rw-r--r-- | plugins/quectel/mm-broadband-modem-qmi-quectel.c | 1 | ||||
-rw-r--r-- | plugins/quectel/mm-broadband-modem-quectel.c | 1 | ||||
-rw-r--r-- | plugins/quectel/mm-shared-quectel.c | 23 | ||||
-rw-r--r-- | plugins/quectel/mm-shared-quectel.h | 14 |
4 files changed, 27 insertions, 12 deletions
diff --git a/plugins/quectel/mm-broadband-modem-qmi-quectel.c b/plugins/quectel/mm-broadband-modem-qmi-quectel.c index 1e8ec7be..a4ccbfc9 100644 --- a/plugins/quectel/mm-broadband-modem-qmi-quectel.c +++ b/plugins/quectel/mm-broadband-modem-qmi-quectel.c @@ -73,6 +73,7 @@ iface_modem_init (MMIfaceModem *iface) iface->setup_sim_hot_swap = mm_shared_quectel_setup_sim_hot_swap; iface->setup_sim_hot_swap_finish = mm_shared_quectel_setup_sim_hot_swap_finish; + iface->cleanup_sim_hot_swap = mm_shared_quectel_cleanup_sim_hot_swap; } static MMIfaceModem * diff --git a/plugins/quectel/mm-broadband-modem-quectel.c b/plugins/quectel/mm-broadband-modem-quectel.c index 23654305..ad66b783 100644 --- a/plugins/quectel/mm-broadband-modem-quectel.c +++ b/plugins/quectel/mm-broadband-modem-quectel.c @@ -71,6 +71,7 @@ iface_modem_init (MMIfaceModem *iface) iface->setup_sim_hot_swap = mm_shared_quectel_setup_sim_hot_swap; iface->setup_sim_hot_swap_finish = mm_shared_quectel_setup_sim_hot_swap_finish; + iface->cleanup_sim_hot_swap = mm_shared_quectel_cleanup_sim_hot_swap; } static MMIfaceModem * diff --git a/plugins/quectel/mm-shared-quectel.c b/plugins/quectel/mm-shared-quectel.c index 547775bd..13834e83 100644 --- a/plugins/quectel/mm-shared-quectel.c +++ b/plugins/quectel/mm-shared-quectel.c @@ -435,11 +435,12 @@ mm_shared_quectel_setup_sim_hot_swap (MMIfaceModem *self, GAsyncReadyCallback callback, gpointer user_data) { - Private *priv; - MMPortSerialAt *ports[2]; - GTask *task; - GRegex *pattern; - guint i; + Private *priv; + MMPortSerialAt *ports[2]; + GTask *task; + GRegex *pattern; + guint i; + g_autoptr(GError) error = NULL; priv = get_private (MM_SHARED_QUECTEL (self)); @@ -464,6 +465,9 @@ mm_shared_quectel_setup_sim_hot_swap (MMIfaceModem *self, g_regex_unref (pattern); mm_obj_dbg (self, "+QUSIM detection set up"); + if (!mm_broadband_modem_sim_hot_swap_ports_context_init (MM_BROADBAND_MODEM (self), &error)) + mm_obj_warn (self, "failed to initialize SIM hot swap ports context: %s", error->message); + /* Now, if available, setup parent logic */ if (priv->iface_modem_parent->setup_sim_hot_swap && priv->iface_modem_parent->setup_sim_hot_swap_finish) { @@ -479,6 +483,15 @@ mm_shared_quectel_setup_sim_hot_swap (MMIfaceModem *self, } /*****************************************************************************/ +/* SIM hot swap cleanup (Modem interface) */ + +void +mm_shared_quectel_cleanup_sim_hot_swap (MMIfaceModem *self) +{ + mm_broadband_modem_sim_hot_swap_ports_context_reset (MM_BROADBAND_MODEM (self)); +} + +/*****************************************************************************/ /* GPS trace received */ static void diff --git a/plugins/quectel/mm-shared-quectel.h b/plugins/quectel/mm-shared-quectel.h index f9266c06..0dfcbde4 100644 --- a/plugins/quectel/mm-shared-quectel.h +++ b/plugins/quectel/mm-shared-quectel.h @@ -54,13 +54,13 @@ MMFirmwareUpdateSettings *mm_shared_quectel_firmware_load_update_settings_finish GAsyncResult *res, GError **error); -void mm_shared_quectel_setup_sim_hot_swap (MMIfaceModem *self, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean mm_shared_quectel_setup_sim_hot_swap_finish (MMIfaceModem *self, - GAsyncResult *res, - GError **error); +void mm_shared_quectel_setup_sim_hot_swap (MMIfaceModem *self, + GAsyncReadyCallback callback, + gpointer user_data); +gboolean mm_shared_quectel_setup_sim_hot_swap_finish (MMIfaceModem *self, + GAsyncResult *res, + GError **error); +void mm_shared_quectel_cleanup_sim_hot_swap (MMIfaceModem *self); void mm_shared_quectel_location_load_capabilities (MMIfaceModemLocation *self, GAsyncReadyCallback callback, |