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.
This commit is contained in:
Aleksander Morgado
2024-03-13 03:52:35 +00:00
committed by Dan Williams
parent 2dac0a9e4f
commit 8512ff4442
@@ -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)
{