Skip to content

Commit

Permalink
ASoC: SOF: ipc4-topology: Improve readability of sof_ipc4_prepare_dai…
Browse files Browse the repository at this point in the history
…_copier()

mainline inclusion
from mainline-v6.10-rc1

Remove the duplicated code paths to check for single bit depth and to
update the params with storing the parameters needed by the function and
have a single code section.

No functional change but the code is easier to follow.

Signed-off-by: Peter Ujfalusi <[email protected]>
Reviewed-by: Pierre-Louis Bossart <[email protected]>
Reviewed-by: Bard Liao <[email protected]>
Reviewed-by: Seppo Ingalsuo <[email protected]>
Reviewed-by: Ranjani Sridharan <[email protected]>
Link: https://msgid.link/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
(cherry picked from commit 2fcad03)
  • Loading branch information
ujfalusi authored and opsiff committed Dec 6, 2024
1 parent b1c23a2 commit ff29ed7
Showing 1 changed file with 18 additions and 24 deletions.
42 changes: 18 additions & 24 deletions sound/soc/sof/ipc4-topology.c
Original file line number Diff line number Diff line change
Expand Up @@ -1534,8 +1534,10 @@ sof_ipc4_prepare_dai_copier(struct snd_sof_dev *sdev, struct snd_sof_dai *dai,
struct sof_ipc4_available_audio_format *available_fmt;
struct snd_pcm_hw_params dai_params = *params;
struct sof_ipc4_copier_data *copier_data;
struct sof_ipc4_pin_format *pin_fmts;
struct sof_ipc4_copier *ipc4_copier;
bool single_bitdepth;
u32 num_pin_fmts;
int ret;

ipc4_copier = dai->private;
Expand All @@ -1549,31 +1551,23 @@ sof_ipc4_prepare_dai_copier(struct snd_sof_dev *sdev, struct snd_sof_dai *dai,
* format lookup
*/
if (dir == SNDRV_PCM_STREAM_PLAYBACK) {
single_bitdepth = sof_ipc4_copier_is_single_bitdepth(sdev,
available_fmt->output_pin_fmts,
available_fmt->num_output_formats);

/* Update the dai_params with the only supported format */
if (single_bitdepth) {
ret = sof_ipc4_update_hw_params(sdev, &dai_params,
&available_fmt->output_pin_fmts[0].audio_fmt,
BIT(SNDRV_PCM_HW_PARAM_FORMAT));
if (ret)
return ret;
}
pin_fmts = available_fmt->output_pin_fmts;
num_pin_fmts = available_fmt->num_output_formats;
} else {
single_bitdepth = sof_ipc4_copier_is_single_bitdepth(sdev,
available_fmt->input_pin_fmts,
available_fmt->num_input_formats);

/* Update the dai_params with the only supported format */
if (single_bitdepth) {
ret = sof_ipc4_update_hw_params(sdev, &dai_params,
&available_fmt->input_pin_fmts[0].audio_fmt,
BIT(SNDRV_PCM_HW_PARAM_FORMAT));
if (ret)
return ret;
}
pin_fmts = available_fmt->input_pin_fmts;
num_pin_fmts = available_fmt->num_input_formats;
}

single_bitdepth = sof_ipc4_copier_is_single_bitdepth(sdev, pin_fmts,
num_pin_fmts);

/* Update the dai_params with the only supported format */
if (single_bitdepth) {
ret = sof_ipc4_update_hw_params(sdev, &dai_params,
&pin_fmts[0].audio_fmt,
BIT(SNDRV_PCM_HW_PARAM_FORMAT));
if (ret)
return ret;
}

ret = snd_sof_get_nhlt_endpoint_data(sdev, dai, single_bitdepth,
Expand Down

0 comments on commit ff29ed7

Please sign in to comment.