aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/quectel/mm-shared-quectel.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2023-07-07 05:45:47 +0000
committerAleksander Morgado <aleksander@aleksander.es>2023-07-07 05:50:12 +0000
commit53f063b8519e9b469bfa5fc83ede9d6dd87f8405 (patch)
treebfcad39fc880aaf21943048c54b30f95c07e4343 /src/plugins/quectel/mm-shared-quectel.c
parent3c2849d7222d9a51008645810bfe3191acf42be1 (diff)
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
Diffstat (limited to 'src/plugins/quectel/mm-shared-quectel.c')
-rw-r--r--src/plugins/quectel/mm-shared-quectel.c43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/plugins/quectel/mm-shared-quectel.c b/src/plugins/quectel/mm-shared-quectel.c
index 47d7cd33..f07096b6 100644
--- a/src/plugins/quectel/mm-shared-quectel.c
+++ b/src/plugins/quectel/mm-shared-quectel.c
@@ -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;
-
- 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;
+ {
+ MMPortMbim *mbim = NULL;
+
+ if (MM_IS_BROADBAND_MODEM_MBIM (self))
+ mbim = mm_broadband_modem_mbim_peek_port_mbim (MM_BROADBAND_MODEM_MBIM (self));
+
+ 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