diff options
Diffstat (limited to 'src/plugins/fibocom/mm-shared-fibocom.c')
-rw-r--r-- | src/plugins/fibocom/mm-shared-fibocom.c | 168 |
1 files changed, 0 insertions, 168 deletions
diff --git a/src/plugins/fibocom/mm-shared-fibocom.c b/src/plugins/fibocom/mm-shared-fibocom.c index bbf6cb46..0a2be7ae 100644 --- a/src/plugins/fibocom/mm-shared-fibocom.c +++ b/src/plugins/fibocom/mm-shared-fibocom.c @@ -26,7 +26,6 @@ #include "mm-broadband-modem.h" #include "mm-broadband-modem-mbim.h" #include "mm-iface-modem.h" -#include "mm-iface-modem-3gpp.h" #include "mm-shared-fibocom.h" #include "mm-port-mbim-fibocom.h" #include "mm-base-modem-at.h" @@ -42,8 +41,6 @@ static GQuark private_quark; typedef struct { /* Parent class */ MMBaseModemClass *class_parent; - /* 3GPP interface support */ - MMIfaceModem3gppInterface *iface_modem_3gpp_parent; /* URCs to ignore */ GRegex *sim_ready_regex; } Private; @@ -74,10 +71,6 @@ get_private (MMSharedFibocom *self) g_assert (MM_SHARED_FIBOCOM_GET_IFACE (self)->peek_parent_class); priv->class_parent = MM_SHARED_FIBOCOM_GET_IFACE (self)->peek_parent_class (self); - /* Setup parent class' MMIfaceModem3gpp */ - g_assert (MM_SHARED_FIBOCOM_GET_IFACE (self)->peek_parent_3gpp_interface); - priv->iface_modem_3gpp_parent = MM_SHARED_FIBOCOM_GET_IFACE (self)->peek_parent_3gpp_interface (self); - g_object_set_qdata_full (G_OBJECT (self), private_quark, priv, (GDestroyNotify)private_free); } @@ -151,167 +144,6 @@ mm_shared_fibocom_setup_ports (MMBroadbandModem *self) /*****************************************************************************/ -typedef struct { - MMBearerProperties *config; - gboolean initial_eps_off_on; - GError *saved_error; -} SetInitialEpsBearerSettingsContext; - -static void -set_initial_eps_bearer_settings_context_free (SetInitialEpsBearerSettingsContext *ctx) -{ - g_clear_error (&ctx->saved_error); - g_clear_object (&ctx->config); - g_slice_free (SetInitialEpsBearerSettingsContext, ctx); -} - -static void -set_initial_eps_bearer_settings_complete (GTask *task) -{ - SetInitialEpsBearerSettingsContext *ctx; - - ctx = g_task_get_task_data (task); - if (ctx->saved_error) - g_task_return_error (task, g_steal_pointer (&ctx->saved_error)); - else - g_task_return_boolean (task, TRUE); - g_object_unref (task); -} - -gboolean -mm_shared_fibocom_set_initial_eps_bearer_settings_finish (MMIfaceModem3gpp *self, - GAsyncResult *res, - GError **error) -{ - return g_task_propagate_boolean (G_TASK (res), error); -} - -static void -after_attach_apn_modem_power_up_ready (MMIfaceModem *self, - GAsyncResult *res, - GTask *task) -{ - SetInitialEpsBearerSettingsContext *ctx; - g_autoptr(GError) error = NULL; - - ctx = g_task_get_task_data (task); - - 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); - } else - mm_obj_dbg (self, "success toggling modem power up after attach APN"); - - set_initial_eps_bearer_settings_complete (task); -} - -static void -parent_set_initial_eps_bearer_settings_ready (MMIfaceModem3gpp *self, - GAsyncResult *res, - GTask *task) -{ - SetInitialEpsBearerSettingsContext *ctx; - Private *priv; - - ctx = g_task_get_task_data (task); - priv = get_private (MM_SHARED_FIBOCOM (self)); - - if (!priv->iface_modem_3gpp_parent->set_initial_eps_bearer_settings_finish (self, res, &ctx->saved_error)) - mm_obj_warn (self, "failed to update APN settings: %s", ctx->saved_error->message); - - if (ctx->initial_eps_off_on) { - mm_obj_dbg (self, "toggle modem power up after attach APN"); - mm_iface_modem_set_power_state (MM_IFACE_MODEM (self), - MM_MODEM_POWER_STATE_ON, - (GAsyncReadyCallback) after_attach_apn_modem_power_up_ready, - task); - return; - } - - set_initial_eps_bearer_settings_complete (task); -} - -static void -parent_set_initial_eps_bearer_settings (GTask *task) -{ - MMSharedFibocom *self; - SetInitialEpsBearerSettingsContext *ctx; - Private *priv; - - self = g_task_get_source_object (task); - ctx = g_task_get_task_data (task); - priv = get_private (self); - - g_assert (priv->iface_modem_3gpp_parent); - g_assert (priv->iface_modem_3gpp_parent->set_initial_eps_bearer_settings); - g_assert (priv->iface_modem_3gpp_parent->set_initial_eps_bearer_settings_finish); - - priv->iface_modem_3gpp_parent->set_initial_eps_bearer_settings (MM_IFACE_MODEM_3GPP (self), - ctx->config, - (GAsyncReadyCallback)parent_set_initial_eps_bearer_settings_ready, - task); -} - -static void -before_attach_apn_modem_power_down_ready (MMIfaceModem *self, - GAsyncResult *res, - GTask *task) -{ - GError *error = NULL; - - 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); - return; - } - mm_obj_dbg (self, "success toggling modem power down before attach APN"); - - parent_set_initial_eps_bearer_settings (task); -} - -void -mm_shared_fibocom_set_initial_eps_bearer_settings (MMIfaceModem3gpp *self, - MMBearerProperties *config, - GAsyncReadyCallback callback, - gpointer user_data) -{ - SetInitialEpsBearerSettingsContext *ctx; - GTask *task; - MMPortMbim *port; - - task = g_task_new (self, NULL, callback, user_data); - - /* This shared logic is only expected in MBIM capable devices */ - g_assert (MM_IS_BROADBAND_MODEM_MBIM (self)); - port = mm_broadband_modem_mbim_peek_port_mbim (MM_BROADBAND_MODEM_MBIM (self)); - if (!port) { - g_task_return_new_error (task, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, - "No valid MBIM port found"); - g_object_unref (task); - return; - } - - ctx = g_slice_new0 (SetInitialEpsBearerSettingsContext); - ctx->config = g_object_ref (config); - ctx->initial_eps_off_on = mm_kernel_device_get_property_as_boolean (mm_port_peek_kernel_device (MM_PORT (port)), "ID_MM_FIBOCOM_INITIAL_EPS_OFF_ON"); - g_task_set_task_data (task, ctx, (GDestroyNotify)set_initial_eps_bearer_settings_context_free); - - if (ctx->initial_eps_off_on) { - mm_obj_dbg (self, "toggle modem power down before attach APN"); - mm_iface_modem_set_power_state (MM_IFACE_MODEM (self), - MM_MODEM_POWER_STATE_LOW, - (GAsyncReadyCallback) before_attach_apn_modem_power_down_ready, - task); - return; - } - - parent_set_initial_eps_bearer_settings (task); -} - -/*****************************************************************************/ - MMFirmwareUpdateSettings * mm_shared_fibocom_firmware_load_update_settings_finish (MMIfaceModemFirmware *self, GAsyncResult *res, |