ASoC: SOF: ipc4-topology: Validate the number of in/out formats for src/asrc

SRC and ASRC modules must have at least one input and on one output formats
to be usable.
Do a sanity check during setup type and fail if either the number of input
or output formats are 0.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://patch.msgid.link/20260526105748.26149-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Peter Ujfalusi 2026-05-26 13:57:47 +03:00 committed by Mark Brown
parent e7ae89a0c9
commit 21a5adffad
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -1092,6 +1092,15 @@ static int sof_ipc4_widget_setup_comp_src(struct snd_sof_widget *swidget)
if (ret)
goto err;
if (!src->available_fmt.num_input_formats ||
!src->available_fmt.num_output_formats) {
dev_err(scomp->dev,
"Invalid number of formats: input: %d, output: %d\n",
src->available_fmt.num_input_formats,
src->available_fmt.num_output_formats);
goto err;
}
ret = sof_update_ipc_object(scomp, &src->data, SOF_SRC_TOKENS, swidget->tuples,
swidget->num_tuples, sizeof(*src), 1);
if (ret) {
@ -1135,6 +1144,15 @@ static int sof_ipc4_widget_setup_comp_asrc(struct snd_sof_widget *swidget)
if (ret)
goto err;
if (!asrc->available_fmt.num_input_formats ||
!asrc->available_fmt.num_output_formats) {
dev_err(scomp->dev,
"Invalid number of formats: input: %d, output: %d\n",
asrc->available_fmt.num_input_formats,
asrc->available_fmt.num_output_formats);
goto err;
}
ret = sof_update_ipc_object(scomp, &asrc->data, SOF_ASRC_TOKENS, swidget->tuples,
swidget->num_tuples, sizeof(*asrc), 1);
if (ret) {