From 8512ff444287704a1bba5f3ae8ee9eca5d3b7c5f Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Mon, 11 Mar 2024 10:42:40 +0000 Subject: [PATCH] fibocom: setup shared fibocom management on AT-only modem The generic MMBroadbandModemFibocom object uses the shared Fibocom settings to load the update settings. This logic does not use the Private info right now, but there is no reason why it wouldn't do it in the future. Also, for consistency, it makes sense to ensure the shared interface setup is the same in all implementations, we should not have only some allowing to initialize the Private info. --- .../fibocom/mm-broadband-modem-fibocom.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/plugins/fibocom/mm-broadband-modem-fibocom.c b/src/plugins/fibocom/mm-broadband-modem-fibocom.c index 9fad4d2f..14011f1f 100644 --- a/src/plugins/fibocom/mm-broadband-modem-fibocom.c +++ b/src/plugins/fibocom/mm-broadband-modem-fibocom.c @@ -29,12 +29,15 @@ static void iface_modem_init (MMIfaceModem static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface); static void iface_modem_3gpp_profile_manager_init (MMIfaceModem3gppProfileManager *iface); static void iface_modem_firmware_init (MMIfaceModemFirmware *iface); +static void shared_fibocom_init (MMSharedFibocom *iface); +static MMIfaceModem3gpp *iface_modem_3gpp_parent; static MMIfaceModem3gppProfileManager *iface_modem_3gpp_profile_manager_parent; G_DEFINE_TYPE_EXTENDED (MMBroadbandModemFibocom, mm_broadband_modem_fibocom, MM_TYPE_BROADBAND_MODEM, 0, G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM, iface_modem_init) G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_3GPP, iface_modem_3gpp_init) + G_IMPLEMENT_INTERFACE (MM_TYPE_SHARED_FIBOCOM, shared_fibocom_init) G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_3GPP_PROFILE_MANAGER, iface_modem_3gpp_profile_manager_init) G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_FIRMWARE, iface_modem_firmware_init)) @@ -736,6 +739,8 @@ iface_modem_init (MMIfaceModem *iface) static void iface_modem_3gpp_init (MMIfaceModem3gpp *iface) { + iface_modem_3gpp_parent = g_type_interface_peek_parent (iface); + iface->load_initial_eps_bearer = modem_3gpp_load_initial_eps_bearer; iface->load_initial_eps_bearer_finish = modem_3gpp_load_initial_eps_bearer_finish; iface->load_initial_eps_bearer_settings = modem_3gpp_load_initial_eps_bearer_settings; @@ -760,6 +765,18 @@ iface_modem_firmware_init (MMIfaceModemFirmware *iface) iface->load_update_settings_finish = mm_shared_fibocom_firmware_load_update_settings_finish; } +static MMIfaceModem3gpp * +peek_parent_3gpp_interface (MMSharedFibocom *self) +{ + return iface_modem_3gpp_parent; +} + +static void +shared_fibocom_init (MMSharedFibocom *iface) +{ + iface->peek_parent_3gpp_interface = peek_parent_3gpp_interface; +} + static void mm_broadband_modem_fibocom_class_init (MMBroadbandModemFibocomClass *klass) {