summaryrefslogtreecommitdiff
path: root/sound/soc/sof/ipc4-topology.h
diff options
context:
space:
mode:
authorRanjani Sridharan <ranjani.sridharan@linux.intel.com>2023-03-16 17:11:35 +0200
committerMark Brown <broonie@kernel.org>2023-03-17 13:05:57 +0000
commitf9efae954905a07a9d152e9b30546a6632227eef (patch)
tree5a780bd564c4186252815b3b1f56854129276147 /sound/soc/sof/ipc4-topology.h
parentd0be868c5a6e0dafb53d0ee9f0b9d66e40d963f6 (diff)
ASoC: SOF: ipc4-topology: Add support for base config extension
Some processing modules need the audio formats for all their input and output pins appended to the base config during module init. So add support for building the base config extension using the available pin formats from topology. Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20230316151137.7598-5-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/ipc4-topology.h')
-rw-r--r--sound/soc/sof/ipc4-topology.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/soc/sof/ipc4-topology.h b/sound/soc/sof/ipc4-topology.h
index 97264454b8a6..015027b23588 100644
--- a/sound/soc/sof/ipc4-topology.h
+++ b/sound/soc/sof/ipc4-topology.h
@@ -26,6 +26,10 @@
#define SOF_IPC4_MODULE_LL BIT(5)
#define SOF_IPC4_MODULE_DP BIT(6)
#define SOF_IPC4_MODULE_LIB_CODE BIT(7)
+#define SOF_IPC4_MODULE_INIT_CONFIG_MASK GENMASK(11, 8)
+
+#define SOF_IPC4_MODULE_INIT_CONFIG_TYPE_BASE_CFG 0
+#define SOF_IPC4_MODULE_INIT_CONFIG_TYPE_BASE_CFG_WITH_EXT 1
#define SOF_IPC4_MODULE_INSTANCE_LIST_ITEM_SIZE 12
#define SOF_IPC4_PIPELINE_OBJECT_SIZE 448
@@ -367,19 +371,25 @@ struct sof_ipc4_base_module_cfg_ext {
/**
* struct sof_ipc4_process - process config data
* @base_config: IPC base config data
+ * @base_config_ext: Base config extension data for module init
* @output_format: Output audio format
* @available_fmt: Available audio format
* @ipc_config_data: Process module config data
* @ipc_config_size: Size of process module config data
* @msg: IPC4 message struct containing header and data info
+ * @base_config_ext_size: Size of the base config extension data in bytes
+ * @init_config: Module init config type (SOF_IPC4_MODULE_INIT_CONFIG_TYPE_*)
*/
struct sof_ipc4_process {
struct sof_ipc4_base_module_cfg base_config;
+ struct sof_ipc4_base_module_cfg_ext *base_config_ext;
struct sof_ipc4_audio_format output_format;
struct sof_ipc4_available_audio_format available_fmt;
void *ipc_config_data;
uint32_t ipc_config_size;
struct sof_ipc4_msg msg;
+ u32 base_config_ext_size;
+ u32 init_config;
};
#endif