]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: SOF: ipc4-topology: Use single token list for the copiers
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Thu, 4 Jul 2024 08:59:44 +0000 (10:59 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 4 Jul 2024 11:42:23 +0000 (12:42 +0100)
There is no need to keep separate token list for dai and 'common' copier
token list when the 'common' list is actually the aif list, the
SOF_COPIER_DEEP_BUFFER_TOKENS are not applicable for buffers.

We could have separate lists for all types but it is probably simpler to
just use a single list for all types of copiers. Function specific tokens
will be only parsed by function specific code anyways.

Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://patch.msgid.link/20240704085944.371450-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/ipc4-topology.c

index 7755c01735f536a03c36a53cd7980bd97b9f0aaa..90f6856ee80cd2a2c16b52d0472689b944560a72 100644 (file)
@@ -3307,14 +3307,17 @@ static int sof_ipc4_link_setup(struct snd_sof_dev *sdev, struct snd_soc_dai_link
        return 0;
 }
 
-static enum sof_tokens common_copier_token_list[] = {
+/* Tokens needed for different copier variants (aif, dai and buffer) */
+static enum sof_tokens copier_token_list[] = {
        SOF_COMP_TOKENS,
+       SOF_COPIER_TOKENS,
        SOF_AUDIO_FMT_NUM_TOKENS,
        SOF_IN_AUDIO_FORMAT_TOKENS,
        SOF_OUT_AUDIO_FORMAT_TOKENS,
-       SOF_COPIER_DEEP_BUFFER_TOKENS,
-       SOF_COPIER_TOKENS,
        SOF_COMP_EXT_TOKENS,
+
+       SOF_COPIER_DEEP_BUFFER_TOKENS,  /* for AIF copier */
+       SOF_DAI_TOKENS,                 /* for DAI copier */
 };
 
 static enum sof_tokens pipeline_token_list[] = {
@@ -3322,16 +3325,6 @@ static enum sof_tokens pipeline_token_list[] = {
        SOF_PIPELINE_TOKENS,
 };
 
-static enum sof_tokens dai_token_list[] = {
-       SOF_COMP_TOKENS,
-       SOF_AUDIO_FMT_NUM_TOKENS,
-       SOF_IN_AUDIO_FORMAT_TOKENS,
-       SOF_OUT_AUDIO_FORMAT_TOKENS,
-       SOF_COPIER_TOKENS,
-       SOF_DAI_TOKENS,
-       SOF_COMP_EXT_TOKENS,
-};
-
 static enum sof_tokens pga_token_list[] = {
        SOF_COMP_TOKENS,
        SOF_GAIN_TOKENS,
@@ -3368,23 +3361,23 @@ static enum sof_tokens process_token_list[] = {
 
 static const struct sof_ipc_tplg_widget_ops tplg_ipc4_widget_ops[SND_SOC_DAPM_TYPE_COUNT] = {
        [snd_soc_dapm_aif_in] =  {sof_ipc4_widget_setup_pcm, sof_ipc4_widget_free_comp_pcm,
-                                 common_copier_token_list, ARRAY_SIZE(common_copier_token_list),
+                                 copier_token_list, ARRAY_SIZE(copier_token_list),
                                  NULL, sof_ipc4_prepare_copier_module,
                                  sof_ipc4_unprepare_copier_module},
        [snd_soc_dapm_aif_out] = {sof_ipc4_widget_setup_pcm, sof_ipc4_widget_free_comp_pcm,
-                                 common_copier_token_list, ARRAY_SIZE(common_copier_token_list),
+                                 copier_token_list, ARRAY_SIZE(copier_token_list),
                                  NULL, sof_ipc4_prepare_copier_module,
                                  sof_ipc4_unprepare_copier_module},
        [snd_soc_dapm_dai_in] = {sof_ipc4_widget_setup_comp_dai, sof_ipc4_widget_free_comp_dai,
-                                dai_token_list, ARRAY_SIZE(dai_token_list), NULL,
+                                copier_token_list, ARRAY_SIZE(copier_token_list), NULL,
                                 sof_ipc4_prepare_copier_module,
                                 sof_ipc4_unprepare_copier_module},
        [snd_soc_dapm_dai_out] = {sof_ipc4_widget_setup_comp_dai, sof_ipc4_widget_free_comp_dai,
-                                 dai_token_list, ARRAY_SIZE(dai_token_list), NULL,
+                                 copier_token_list, ARRAY_SIZE(copier_token_list), NULL,
                                  sof_ipc4_prepare_copier_module,
                                  sof_ipc4_unprepare_copier_module},
        [snd_soc_dapm_buffer] = {sof_ipc4_widget_setup_pcm, sof_ipc4_widget_free_comp_pcm,
-                                common_copier_token_list, ARRAY_SIZE(common_copier_token_list),
+                                copier_token_list, ARRAY_SIZE(copier_token_list),
                                 NULL, sof_ipc4_prepare_copier_module,
                                 sof_ipc4_unprepare_copier_module},
        [snd_soc_dapm_scheduler] = {sof_ipc4_widget_setup_comp_pipeline,