ASoC: SOF: ipc4-topology: Improve readability of sof_ipc4_prepare_dai_copier()
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Thu, 30 May 2024 11:19:17 +0000 (14:19 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 30 May 2024 11:33:31 +0000 (12:33 +0100)
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 <peter.ujfalusi@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://msgid.link/r/20240530111918.21974-5-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc4-topology.c

index afb7908..6452527 100644 (file)
@@ -1590,8 +1590,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;
@@ -1605,31 +1607,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,