Commit d0be868c authored by Chao Song's avatar Chao Song Committed by Mark Brown

ASoC: SOF: ipc4-topology: add base module config extension structure

The modules currently supported by the SOF firmware use the base module
config containing the audio format for the input/output pin 0 for
initialization. But some processing modules with multiple input/output
pins require the audio formats to be sent with the init instance IPC
payload. Modules that require the base config extension will need to
indicate this in the module information in the firmware manifest.

Introduce a new struct sof_ipc4_base_module_cfg_ext which contains the
pin formats for the input and output pins. This will be appended to the
init instance IPC payload for modules that require it.
Signed-off-by: default avatarChao Song <chao.song@linux.intel.com>
Signed-off-by: default avatarRanjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: default avatarPéter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20230316151137.7598-4-peter.ujfalusi@linux.intel.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7711a2bb
......@@ -347,6 +347,23 @@ struct sof_ipc4_src {
struct sof_ipc4_msg msg;
};
/**
* struct sof_ipc4_base_module_cfg_ext - base module config extension containing the pin format
* information for the module. Both @num_input_pin_fmts and @num_output_pin_fmts cannot be 0 for a
* module.
* @num_input_pin_fmts: number of input pin formats in the @pin_formats array
* @num_output_pin_fmts: number of output pin formats in the @pin_formats array
* @reserved: reserved for future use
* @pin_formats: flexible array consisting of @num_input_pin_fmts input pin format items followed
* by @num_output_pin_fmts output pin format items
*/
struct sof_ipc4_base_module_cfg_ext {
u16 num_input_pin_fmts;
u16 num_output_pin_fmts;
u8 reserved[12];
DECLARE_FLEX_ARRAY(struct sof_ipc4_pin_format, pin_formats);
} __packed;
/**
* struct sof_ipc4_process - process config data
* @base_config: IPC base config data
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment