aboutsummaryrefslogtreecommitdiff
path: root/plugins/quectel/mm-shared-quectel.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2022-01-18 10:50:20 +0100
committerAleksander Morgado <aleksander@aleksander.es>2022-01-18 11:15:14 +0100
commitbb256b0cec3bac4679a29e61d9cb279bcd1f27b9 (patch)
tree436936db23fc2b73ceb2e3f912992d306bd03e89 /plugins/quectel/mm-shared-quectel.c
parent22e38199a97c8ed82847fb9e371407f8f2fc4375 (diff)
quectel: new ID_MM_QUECTEL_FIREHOSE udev tag
To identify which devices support the firehose update protocol.
Diffstat (limited to 'plugins/quectel/mm-shared-quectel.c')
-rw-r--r--plugins/quectel/mm-shared-quectel.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/plugins/quectel/mm-shared-quectel.c b/plugins/quectel/mm-shared-quectel.c
index 3cb0586f..1a7355c7 100644
--- a/plugins/quectel/mm-shared-quectel.c
+++ b/plugins/quectel/mm-shared-quectel.c
@@ -148,19 +148,10 @@ mm_shared_quectel_firmware_load_update_settings_finish (MMIfaceModemFirmware *s
}
static gboolean
-quectel_is_firehose_supported (MMBaseModem *modem)
+quectel_is_firehose_supported (MMBaseModem *modem,
+ MMPort *port)
{
- guint16 vid = mm_base_modem_get_vendor_id (modem);
- guint16 pid = mm_base_modem_get_product_id (modem);
-
- /* EM120 and EM160 */
- if (vid == 0x1eac && (pid == 0x1001 || pid == 0x1002))
- return TRUE;
- /* EM05-G and EM05-CE */
- if (vid == 0x2c7c && (pid == 0x030a || pid == 0x0127))
- return TRUE;
-
- return FALSE;
+ return mm_kernel_device_get_global_property_as_boolean (mm_port_peek_kernel_device (port), "ID_MM_QUECTEL_FIREHOSE");
}
static void
@@ -245,7 +236,7 @@ mm_shared_quectel_firmware_load_update_settings (MMIfaceModemFirmware *self,
at_port = mm_base_modem_peek_best_at_port (MM_BASE_MODEM (self), NULL);
if (at_port) {
- if (quectel_is_firehose_supported (MM_BASE_MODEM (self))) {
+ if (quectel_is_firehose_supported (MM_BASE_MODEM (self), MM_PORT (at_port))) {
/* Firehose modems */
update_settings = mm_firmware_update_settings_new (MM_MODEM_FIRMWARE_UPDATE_METHOD_FIREHOSE);
g_task_set_task_data (task, update_settings, g_object_unref);
@@ -274,7 +265,7 @@ mm_shared_quectel_firmware_load_update_settings (MMIfaceModemFirmware *self,
g_autoptr(MbimMessage) message = NULL;
/* Set update method */
- if (quectel_is_firehose_supported (MM_BASE_MODEM (self)))
+ if (quectel_is_firehose_supported (MM_BASE_MODEM (self), MM_PORT (mbim)))
update_settings = mm_firmware_update_settings_new (MM_MODEM_FIRMWARE_UPDATE_METHOD_FIREHOSE);
else
update_settings = mm_firmware_update_settings_new (MM_MODEM_FIRMWARE_UPDATE_METHOD_NONE);