ASoC: SOF: ipc4-loader: Save the maximum number of libraries supported
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Thu, 20 Oct 2022 12:12:27 +0000 (15:12 +0300)
committerMark Brown <broonie@kernel.org>
Fri, 21 Oct 2022 12:05:00 +0000 (13:05 +0100)
The firmware supports external libraries (containing modules) to be loaded
runtime.
The firmware configuration contains the maximum number of libraries
supported, including the base firmware (which is library 0).

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Chao Song <chao.song@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20221020121238.18339-9-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc4-loader.c
sound/soc/sof/ipc4-priv.h

index 9f433e9..2495a20 100644 (file)
@@ -202,6 +202,13 @@ static int sof_ipc4_query_fw_configuration(struct snd_sof_dev *sdev)
                        trace_sof_ipc4_fw_config(sdev, "Trace log size", *tuple->value);
                        ipc4_data->mtrace_log_bytes = *tuple->value;
                        break;
+               case SOF_IPC4_FW_CFG_MAX_LIBS_COUNT:
+                       trace_sof_ipc4_fw_config(sdev, "maximum number of libraries",
+                                                *tuple->value);
+                       ipc4_data->max_libs_count = *tuple->value;
+                       if (!ipc4_data->max_libs_count)
+                               ipc4_data->max_libs_count = 1;
+                       break;
                default:
                        break;
                }
index e3b8484..7f5c7a4 100644 (file)
@@ -32,6 +32,8 @@ enum sof_ipc4_mtrace_type {
  * @nhlt: NHLT table either from the BIOS or the topology manifest
  * @mtrace_type: mtrace type supported on the booted platform
  * @mtrace_log_bytes: log bytes as reported by the firmware via fw_config reply
+ * @max_libs_count: Maximum number of libraries support by the FW including the
+ *                 base firmware
  */
 struct sof_ipc4_fw_data {
        u32 manifest_fw_hdr_offset;
@@ -40,6 +42,7 @@ struct sof_ipc4_fw_data {
        void *nhlt;
        enum sof_ipc4_mtrace_type mtrace_type;
        u32 mtrace_log_bytes;
+       u32 max_libs_count;
 };
 
 /**