aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-firmware.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2018-12-18 16:22:52 +0100
committerAleksander Morgado <aleksander@aleksander.es>2019-04-02 12:14:03 +0200
commitc479d036f7717adbc922e52ba305df8a304bd690 (patch)
tree69afcdb4fbb119a2d0e46a3f8030f93fe0ae32ef /src/mm-iface-modem-firmware.c
parent147facd2ec780ef54d12fe7ad49286ea68c81e52 (diff)
firmware: export a device id containing the carrier info
In order to support different per-carrier upgrade paths in fwupd.
Diffstat (limited to 'src/mm-iface-modem-firmware.c')
-rw-r--r--src/mm-iface-modem-firmware.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mm-iface-modem-firmware.c b/src/mm-iface-modem-firmware.c
index 5cbe8741..1775a1cb 100644
--- a/src/mm-iface-modem-firmware.c
+++ b/src/mm-iface-modem-firmware.c
@@ -311,6 +311,7 @@ add_generic_device_ids (MMBaseModem *self,
GPtrArray *ids;
MMPort *primary = NULL;
const gchar *subsystem;
+ const gchar *aux;
vid = mm_base_modem_get_vendor_id (self);
pid = mm_base_modem_get_product_id (self);
@@ -334,7 +335,17 @@ add_generic_device_ids (MMBaseModem *self,
return FALSE;
}
+ /* carrier = g_ascii_strup (mm_iface_modem_get_carrier_config (MM_IFACE_MODEM (self)), -1); */
+ aux = mm_iface_modem_get_carrier_config (MM_IFACE_MODEM (self));
+
ids = g_ptr_array_new_with_free_func ((GDestroyNotify)g_free);
+ if (aux) {
+ gchar *carrier;
+
+ carrier = g_ascii_strup (aux, -1);
+ g_ptr_array_add (ids, g_strdup_printf ("USB\\VID_%04X&PID_%04X&REV_%04X&CARRIER_%s", vid, pid, rid, carrier));
+ g_free (carrier);
+ }
g_ptr_array_add (ids, g_strdup_printf ("USB\\VID_%04X&PID_%04X&REV_%04X", vid, pid, rid));
g_ptr_array_add (ids, g_strdup_printf ("USB\\VID_%04X&PID_%04X", vid, pid));
g_ptr_array_add (ids, g_strdup_printf ("USB\\VID_%04X", vid));