aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/fibocom/mm-broadband-modem-mbim-fibocom.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/fibocom/mm-broadband-modem-mbim-fibocom.c')
-rw-r--r--src/plugins/fibocom/mm-broadband-modem-mbim-fibocom.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/fibocom/mm-broadband-modem-mbim-fibocom.c b/src/plugins/fibocom/mm-broadband-modem-mbim-fibocom.c
index a94ba545..e00086e3 100644
--- a/src/plugins/fibocom/mm-broadband-modem-mbim-fibocom.c
+++ b/src/plugins/fibocom/mm-broadband-modem-mbim-fibocom.c
@@ -30,6 +30,8 @@
static void shared_fibocom_init (MMSharedFibocomInterface *iface);
static void iface_modem_firmware_init (MMIfaceModemFirmwareInterface *iface);
+static MMIfaceModemFirmwareInterface *iface_modem_firmware_parent;
+
G_DEFINE_TYPE_EXTENDED (MMBroadbandModemMbimFibocom, mm_broadband_modem_mbim_fibocom, MM_TYPE_BROADBAND_MODEM_MBIM, 0,
G_IMPLEMENT_INTERFACE (MM_TYPE_SHARED_FIBOCOM, shared_fibocom_init)
G_IMPLEMENT_INTERFACE (MM_TYPE_IFACE_MODEM_FIRMWARE, iface_modem_firmware_init))
@@ -67,10 +69,18 @@ mm_broadband_modem_mbim_fibocom_init (MMBroadbandModemMbimFibocom *self)
static void
iface_modem_firmware_init (MMIfaceModemFirmwareInterface *iface)
{
+ iface_modem_firmware_parent = g_type_interface_peek_parent (iface);
+
iface->load_update_settings = mm_shared_fibocom_firmware_load_update_settings;
iface->load_update_settings_finish = mm_shared_fibocom_firmware_load_update_settings_finish;
}
+static MMIfaceModemFirmwareInterface *
+peek_parent_firmware_interface (MMSharedFibocom *self)
+{
+ return iface_modem_firmware_parent;
+}
+
static MMBaseModemClass *
peek_parent_class (MMSharedFibocom *self)
{
@@ -81,6 +91,7 @@ static void
shared_fibocom_init (MMSharedFibocomInterface *iface)
{
iface->peek_parent_class = peek_parent_class;
+ iface->peek_parent_firmware_interface = peek_parent_firmware_interface;
}
static void