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 1b3c58fe14c4ce01b6b05dffba808fcf0f47dc5c..94fca10f01add65ec4a17d086998e9bdf3ae10c6 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 3019626b05927dc9209dd10c1fe4ad7f149d17d3..c142571992a1c3e6b840d7f0c123994787d21096 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 22a065f4c908591af999cab656c13c38a16642f9..9fd7e633d374d5c7aaf48fc823895c97e19dc0a9 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,