ASoC: SOF: ipc4-loader: save FW version info to debugfs
authorYong Zhi <yong.zhi@intel.com>
Tue, 2 Apr 2024 14:59:56 +0000 (09:59 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 2 Apr 2024 16:14:26 +0000 (17:14 +0100)
To check loaded FW version:

$ hexdump -C /sys/kernel/debug/sof/fw_version
00000000  02 00 07 00 63 00 01 00  00 00 00 00 00 00 00 00  |....c...........|

Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Yong Zhi <yong.zhi@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240402145959.172619-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc4-loader.c

index c79479afa8d0db70be1a756d09ff85a1a353bbc9..641c4f24cca98c413a654630dc365975e433ddd6 100644 (file)
@@ -80,6 +80,14 @@ static ssize_t sof_ipc4_fw_parse_ext_man(struct snd_sof_dev *sdev,
        dev_dbg(sdev->dev, "Header length: %u, module count: %u\n",
                fw_header->len, fw_header->num_module_entries);
 
+       /* copy the fw_version of basefw into debugfs at first boot */
+       if (fw == sdev->basefw.fw) {
+               sdev->fw_version.major = fw_header->major_version;
+               sdev->fw_version.minor = fw_header->minor_version;
+               sdev->fw_version.micro = fw_header->hotfix_version;
+               sdev->fw_version.build = fw_header->build_version;
+       }
+
        fw_lib->modules = devm_kmalloc_array(sdev->dev, fw_header->num_module_entries,
                                             sizeof(*fw_module), GFP_KERNEL);
        if (!fw_lib->modules)