diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2024-03-11 10:42:40 +0000 |
---|---|---|
committer | Dan Williams <dan@bigw.org> | 2024-03-13 03:52:35 +0000 |
commit | 8512ff444287704a1bba5f3ae8ee9eca5d3b7c5f (patch) | |
tree | ed927fec5d9bed044794b522a8a925f520b55857 /src | |
parent | 2dac0a9e4f145cac5a43b61ed95d9e48b960bf68 (diff) |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/fibocom/mm-broadband-modem-fibocom.c | 17 |
1 files changed, 17 insertions, 0 deletions
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) { |