diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2018-12-18 16:22:52 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2019-04-02 12:14:03 +0200 |
commit | c479d036f7717adbc922e52ba305df8a304bd690 (patch) | |
tree | 69afcdb4fbb119a2d0e46a3f8030f93fe0ae32ef /src/mm-iface-modem-firmware.c | |
parent | 147facd2ec780ef54d12fe7ad49286ea68c81e52 (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.c | 11 |
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)); |