quectel: avoid assuming modem is MBIM capable in shared utils

(ModemManager:10426): GLib-GObject-WARNING **: 09:44:23.142: invalid cast from 'MMBroadbandModemQmiQuectel' to 'MMBroadbandModemMbim'
  **
  ERROR:../git/src/mm-broadband-modem-mbim.c:284:mm_broadband_modem_mbim_peek_port_mbim: assertion failed: (MM_IS_BROADBAND_MODEM_MBIM (self))
  Bail out! ERROR:../git/src/mm-broadband-modem-mbim.c:284:mm_broadband_modem_mbim_peek_port_mbim: assertion failed: (MM_IS_BROADBAND_MODEM_MBIM (self))

See https://lists.freedesktop.org/archives/modemmanager-devel/2023-July/009729.html
This commit is contained in:
Aleksander Morgado
2023-07-07 05:50:12 +00:00
committed by Aleksander Morgado
parent 3c2849d722
commit 53f063b851
+21 -18
View File
@@ -342,9 +342,6 @@ mm_shared_quectel_firmware_load_update_settings (MMIfaceModemFirmware *self,
MMPortSerialAt *at_port;
MMModemFirmwareUpdateMethod update_methods;
MMFirmwareUpdateSettings *update_settings;
#if defined WITH_MBIM
MMPortMbim *mbim;
#endif
task = g_task_new (self, NULL, callback, user_data);
@@ -366,23 +363,29 @@ mm_shared_quectel_firmware_load_update_settings (MMIfaceModemFirmware *self,
}
#if defined WITH_MBIM
mbim = mm_broadband_modem_mbim_peek_port_mbim (MM_BROADBAND_MODEM_MBIM (self));
if (mbim) {
g_autoptr(MbimMessage) message = NULL;
{
MMPortMbim *mbim = NULL;
update_methods = quectel_get_firmware_update_methods (MM_BASE_MODEM (self), MM_PORT (mbim));
update_settings = mm_firmware_update_settings_new (update_methods);
if (MM_IS_BROADBAND_MODEM_MBIM (self))
mbim = mm_broadband_modem_mbim_peek_port_mbim (MM_BROADBAND_MODEM_MBIM (self));
/* Fetch firmware info */
g_task_set_task_data (task, update_settings, g_object_unref);
message = mbim_message_qdu_quectel_read_version_set_new (MBIM_QDU_QUECTEL_VERSION_TYPE_FW_BUILD_ID, NULL);
mbim_device_command (mm_port_mbim_peek_device (mbim),
message,
5,
NULL,
(GAsyncReadyCallback) quectel_mbim_port_get_firmware_version_ready,
task);
return;
if (mbim) {
g_autoptr(MbimMessage) message = NULL;
update_methods = quectel_get_firmware_update_methods (MM_BASE_MODEM (self), MM_PORT (mbim));
update_settings = mm_firmware_update_settings_new (update_methods);
/* Fetch firmware info */
g_task_set_task_data (task, update_settings, g_object_unref);
message = mbim_message_qdu_quectel_read_version_set_new (MBIM_QDU_QUECTEL_VERSION_TYPE_FW_BUILD_ID, NULL);
mbim_device_command (mm_port_mbim_peek_device (mbim),
message,
5,
NULL,
(GAsyncReadyCallback) quectel_mbim_port_get_firmware_version_ready,
task);
return;
}
}
#endif