foxconn: add new MBIM QDU firmware update method support
Based on the QDU service newly added in libmbim, T99W175 module (vid: 0x105b) supports MBIM QDU based update.
This commit is contained in:

committed by
Aleksander Morgado

parent
d5041cc814
commit
35b1672b85
@@ -1515,6 +1515,7 @@ typedef enum { /*< underscore_name=mm_call_direction >*/
|
|||||||
* @MM_MODEM_FIRMWARE_UPDATE_METHOD_NONE: No method specified.
|
* @MM_MODEM_FIRMWARE_UPDATE_METHOD_NONE: No method specified.
|
||||||
* @MM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT: Device supports fastboot-based update.
|
* @MM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT: Device supports fastboot-based update.
|
||||||
* @MM_MODEM_FIRMWARE_UPDATE_METHOD_QMI_PDC: Device supports QMI PDC based update.
|
* @MM_MODEM_FIRMWARE_UPDATE_METHOD_QMI_PDC: Device supports QMI PDC based update.
|
||||||
|
* @MM_MODEM_FIRMWARE_UPDATE_METHOD_MBIM_QDU: Device supports MBIM QDU based update. Since 1.18.
|
||||||
*
|
*
|
||||||
* Type of firmware update method supported by the module.
|
* Type of firmware update method supported by the module.
|
||||||
*
|
*
|
||||||
@@ -1524,6 +1525,7 @@ typedef enum { /*< underscore_name=mm_modem_firmware_update_method >*/
|
|||||||
MM_MODEM_FIRMWARE_UPDATE_METHOD_NONE = 0,
|
MM_MODEM_FIRMWARE_UPDATE_METHOD_NONE = 0,
|
||||||
MM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT = 1 << 0,
|
MM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT = 1 << 0,
|
||||||
MM_MODEM_FIRMWARE_UPDATE_METHOD_QMI_PDC = 1 << 1,
|
MM_MODEM_FIRMWARE_UPDATE_METHOD_QMI_PDC = 1 << 1,
|
||||||
|
MM_MODEM_FIRMWARE_UPDATE_METHOD_MBIM_QDU = 1 << 2,
|
||||||
} MMModemFirmwareUpdateMethod;
|
} MMModemFirmwareUpdateMethod;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -89,15 +89,24 @@ foxconn_get_firmware_version_ready (QmiClientDms *client,
|
|||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
MMFirmwareUpdateSettings *update_settings = NULL;
|
MMFirmwareUpdateSettings *update_settings = NULL;
|
||||||
const gchar *str;
|
const gchar *str;
|
||||||
|
MMIfaceModemFirmware *self;
|
||||||
|
|
||||||
output = qmi_client_dms_foxconn_get_firmware_version_finish (client, res, &error);
|
output = qmi_client_dms_foxconn_get_firmware_version_finish (client, res, &error);
|
||||||
if (!output || !qmi_message_dms_foxconn_get_firmware_version_output_get_result (output, &error))
|
if (!output || !qmi_message_dms_foxconn_get_firmware_version_output_get_result (output, &error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* Create update settings now */
|
/* Create update settings now:
|
||||||
update_settings = mm_firmware_update_settings_new (MM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT |
|
* 0x105b is the T99W175 module, T99W175 supports QDU,
|
||||||
MM_MODEM_FIRMWARE_UPDATE_METHOD_QMI_PDC);
|
* else support FASTBOOT and QMI PDC.
|
||||||
mm_firmware_update_settings_set_fastboot_at (update_settings, "AT^FASTBOOT");
|
*/
|
||||||
|
self = g_task_get_source_object (task);
|
||||||
|
if (mm_base_modem_get_vendor_id (MM_BASE_MODEM (self)) == 0x105b)
|
||||||
|
update_settings = mm_firmware_update_settings_new (MM_MODEM_FIRMWARE_UPDATE_METHOD_MBIM_QDU);
|
||||||
|
else {
|
||||||
|
update_settings = mm_firmware_update_settings_new (MM_MODEM_FIRMWARE_UPDATE_METHOD_FASTBOOT |
|
||||||
|
MM_MODEM_FIRMWARE_UPDATE_METHOD_QMI_PDC);
|
||||||
|
mm_firmware_update_settings_set_fastboot_at (update_settings, "AT^FASTBOOT");
|
||||||
|
}
|
||||||
|
|
||||||
qmi_message_dms_foxconn_get_firmware_version_output_get_version (output, &str, NULL);
|
qmi_message_dms_foxconn_get_firmware_version_output_get_version (output, &str, NULL);
|
||||||
mm_firmware_update_settings_set_version (update_settings, str);
|
mm_firmware_update_settings_set_version (update_settings, str);
|
||||||
|
Reference in New Issue
Block a user