diff options
-rw-r--r-- | plugins/foxconn/mm-broadband-modem-mbim-foxconn.c | 37 | ||||
-rw-r--r-- | src/mm-broadband-modem-mbim.c | 1 |
2 files changed, 30 insertions, 8 deletions
diff --git a/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c b/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c index cfc0237d..f2b875c2 100644 --- a/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c +++ b/plugins/foxconn/mm-broadband-modem-mbim-foxconn.c @@ -36,6 +36,7 @@ #if defined WITH_QMI && QMI_MBIM_QMUX_SUPPORTED # include "mm-iface-modem-firmware.h" # include "mm-shared-qmi.h" +# include "mm-log.h" #endif static void iface_modem_location_init (MMIfaceModemLocation *iface); @@ -164,15 +165,19 @@ fox_get_firmware_version_ready (QmiClientFox *client, } static void -firmware_load_update_settings (MMIfaceModemFirmware *self, - GAsyncReadyCallback callback, - gpointer user_data) +mbim_port_allocate_qmi_client_ready (MMPortMbim *mbim, + GAsyncResult *res, + GTask *task) { - GTask *task; - QmiClient *fox_client = NULL; - QmiClient *dms_client = NULL; + MMIfaceModemFirmware *self; + QmiClient *fox_client = NULL; + QmiClient *dms_client = NULL; + g_autoptr(GError) error = NULL; - task = g_task_new (self, NULL, callback, user_data); + self = g_task_get_source_object (task); + + if (!mm_port_mbim_allocate_qmi_client_finish (mbim, res, &error)) + mm_obj_dbg (self, "Allocate FOX client failed: %s", error->message); /* Try to get firmware version over fox service, if it failed to peek client, try dms service. */ fox_client = mm_shared_qmi_peek_client (MM_SHARED_QMI (self), QMI_SERVICE_FOX, MM_PORT_QMI_FLAG_DEFAULT, NULL); @@ -225,6 +230,24 @@ firmware_load_update_settings (MMIfaceModemFirmware *self, g_assert_not_reached (); } +static void +firmware_load_update_settings (MMIfaceModemFirmware *self, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTask *task; + MMPortMbim *mbim; + + task = g_task_new (self, NULL, callback, user_data); + + mbim = mm_broadband_modem_mbim_peek_port_mbim (MM_BROADBAND_MODEM_MBIM (self)); + mm_port_mbim_allocate_qmi_client (mbim, + QMI_SERVICE_FOX, + NULL, + (GAsyncReadyCallback)mbim_port_allocate_qmi_client_ready, + task); +} + #endif /*****************************************************************************/ diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 573dafa6..9b74bb66 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -2933,7 +2933,6 @@ static const QmiService qmi_services[] = { QMI_SERVICE_PDS, QMI_SERVICE_LOC, QMI_SERVICE_PDC, - QMI_SERVICE_FOX, QMI_SERVICE_UIM, }; |