diff options
author | Aleksander Morgado <aleksandermj@chromium.org> | 2023-07-07 05:45:47 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2023-07-07 05:50:12 +0000 |
commit | 53f063b8519e9b469bfa5fc83ede9d6dd87f8405 (patch) | |
tree | bfcad39fc880aaf21943048c54b30f95c07e4343 /src/plugins/quectel/mm-shared-quectel.c | |
parent | 3c2849d7222d9a51008645810bfe3191acf42be1 (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.c | 43 |
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 |