diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2018-12-18 16:57:07 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2019-04-02 12:14:03 +0200 |
commit | 52b67dc7c3a2b432f6c64b8e4d56b7f2e4d28066 (patch) | |
tree | 4a0349ecedb10c3a326590fb045ae195f9cf6857 /src/mm-iface-modem-firmware.c | |
parent | c479d036f7717adbc922e52ba305df8a304bd690 (diff) |
api,modem: new 'CarrierConfigurationRevision' property
Which reports the version of the currently active carrier
configuration.
We also update the firmware 'version' reported in the firmware
settings so that carrier-specific upgrades can be performed (e.g. when
the firmware stays the same but the MCFG is updated).
Diffstat (limited to 'src/mm-iface-modem-firmware.c')
-rw-r--r-- | src/mm-iface-modem-firmware.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/mm-iface-modem-firmware.c b/src/mm-iface-modem-firmware.c index 1775a1cb..ecfa3b5f 100644 --- a/src/mm-iface-modem-firmware.c +++ b/src/mm-iface-modem-firmware.c @@ -287,16 +287,27 @@ add_generic_version (MMBaseModem *self, MMFirmwareUpdateSettings *update_settings, GError **error) { - const gchar *revision; + const gchar *firmware_revision; + const gchar *carrier_revision; + gchar *combined; - revision = mm_iface_modem_get_revision (MM_IFACE_MODEM (self)); - if (!revision) { + firmware_revision = mm_iface_modem_get_revision (MM_IFACE_MODEM (self)); + if (!firmware_revision) { g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Unknown revision"); return FALSE; } - mm_firmware_update_settings_set_version (update_settings, revision); + mm_iface_modem_get_carrier_config (MM_IFACE_MODEM (self), NULL, &carrier_revision); + + if (!carrier_revision) { + mm_firmware_update_settings_set_version (update_settings, firmware_revision); + return TRUE; + } + + combined = g_strdup_printf ("%s - %s", firmware_revision, carrier_revision); + mm_firmware_update_settings_set_version (update_settings, combined); + g_free (combined); return TRUE; } @@ -335,8 +346,7 @@ 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)); + mm_iface_modem_get_carrier_config (MM_IFACE_MODEM (self), &aux, NULL); ids = g_ptr_array_new_with_free_func ((GDestroyNotify)g_free); if (aux) { |