aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-firmware.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2018-12-18 16:57:07 +0100
committerAleksander Morgado <aleksander@aleksander.es>2019-04-02 12:14:03 +0200
commit52b67dc7c3a2b432f6c64b8e4d56b7f2e4d28066 (patch)
tree4a0349ecedb10c3a326590fb045ae195f9cf6857 /src/mm-iface-modem-firmware.c
parentc479d036f7717adbc922e52ba305df8a304bd690 (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.c22
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) {