ASoC: soc-core.c: add snd_soc_dlc_use_cpu_as_platform()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 10 Jul 2023 01:20:11 +0000 (10:20 +0900)
committerMark Brown <broonie@kernel.org>
Mon, 17 Jul 2023 05:15:45 +0000 (06:15 +0100)
Current snd_soc_is_matching_component() checks "of_node" or "dai_args".
Thus coping "of_node" only is not enough to use CPU as Platform.
This patch adds snd_soc_dlc_use_cpu_as_platform() and help it.

This is helper function for multi Component support.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87cz10o94k.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc.h
sound/soc/generic/simple-card-utils.c
sound/soc/soc-core.c

index 1b3c58f..94fca10 100644 (file)
@@ -1336,6 +1336,8 @@ int snd_soc_add_pcm_runtimes(struct snd_soc_card *card,
 void snd_soc_remove_pcm_runtime(struct snd_soc_card *card,
                                struct snd_soc_pcm_runtime *rtd);
 
+void snd_soc_dlc_use_cpu_as_platform(struct snd_soc_dai_link_component *platforms,
+                                    struct snd_soc_dai_link_component *cpus);
 struct snd_soc_dai *snd_soc_get_dai_via_args(struct of_phandle_args *dai_args);
 struct snd_soc_dai *snd_soc_register_dai(struct snd_soc_component *component,
                                         struct snd_soc_dai_driver *dai_drv,
index 3019626..c142571 100644 (file)
@@ -649,7 +649,7 @@ void asoc_simple_canonicalize_platform(struct snd_soc_dai_link_component *platfo
         *      simple-card.c :: simple_count_noml()
         */
        if (!platforms->of_node)
-               platforms->of_node = cpus->of_node;
+               snd_soc_dlc_use_cpu_as_platform(platforms, cpus);
 }
 EXPORT_SYMBOL_GPL(asoc_simple_canonicalize_platform);
 
index 22a065f..9fd7e63 100644 (file)
@@ -3005,6 +3005,14 @@ int snd_soc_of_parse_tdm_slot(struct device_node *np,
 }
 EXPORT_SYMBOL_GPL(snd_soc_of_parse_tdm_slot);
 
+void snd_soc_dlc_use_cpu_as_platform(struct snd_soc_dai_link_component *platforms,
+                                    struct snd_soc_dai_link_component *cpus)
+{
+       platforms->of_node      = cpus->of_node;
+       platforms->dai_args     = cpus->dai_args;
+}
+EXPORT_SYMBOL_GPL(snd_soc_dlc_use_cpu_as_platform);
+
 void snd_soc_of_parse_node_prefix(struct device_node *np,
                                  struct snd_soc_codec_conf *codec_conf,
                                  struct device_node *of_node,