Creating multiple clients with one QMI dev

Aleksander Morgado aleksandermj at chromium.org
Thu Mar 30 08:12:40 UTC 2023


Hey!

>
> When we create multiple clients from the same QmiDevice, it works for WDS and UIM, but when we add DMS client, we face some issues like transaction timeouts.
> But when I change the order of clients creation, it works ok again. Is there a recommended order when creating multiple clients (one per service) from the same QmiDevice?
>
> Our flow looks like something this...
>
> qmi_device_new()
> qmi_device_open()
> qmi_device_allocate_client(dev, QMI_SERVICE_DMS, ....)
>
> qmi_client_dms_swi_get_current_firmware
> qmi_client_dms_get_operating_mode
>
> qmi_device_allocate_client(dev, QMI_SERVICE_UIM, ....)
>
> qmi_client_uim_get_card_status
> qmi_client_uim_get_slot_status
>
> qmi_device_allocate_client(dev, QMI_SERVICE_WDS, ....)
>
> qmi_message_wds_start_network_input_set_apn
>
> qmi_client_wds_start_network
>
>
> When the order of client creation was WDS, UIM and then DMS, we faced issues. But when reordered it to DMS, UIM and then WDS, it worked fine.
> But we are unsure if this has anything to do with the transaction timeouts we faced before.
>

I'm afraid this looks like some issue in your program. The allocated
QMI clients are inherently independent to each other, the order of
allocation should be irrelevant.
If you can isolate the logic that is failing in a simple tester, and
share the source code, we can dig into the code and try to find where
the issue is.

-- 
Aleksander


More information about the libqmi-devel mailing list