ASoC: simple-card-utils: care multi DAI at asoc_simple_clean_reference()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Sun, 11 Apr 2021 23:52:18 +0000 (08:52 +0900)
committerMark Brown <broonie@kernel.org>
Tue, 13 Apr 2021 11:32:49 +0000 (12:32 +0100)
ASoC is now supporting multi DAI, but, current
simple-card / audio-graph are assuming fixed single DAI.

This patch cares multi DAI at asoc_simple_clean_reference()
for of_node_put().

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

index fad9c7f..6efe375 100644 (file)
@@ -451,11 +451,15 @@ EXPORT_SYMBOL_GPL(asoc_simple_canonicalize_cpu);
 int asoc_simple_clean_reference(struct snd_soc_card *card)
 {
        struct snd_soc_dai_link *dai_link;
-       int i;
+       struct snd_soc_dai_link_component *cpu;
+       struct snd_soc_dai_link_component *codec;
+       int i, j;
 
        for_each_card_prelinks(card, i, dai_link) {
-               of_node_put(dai_link->cpus->of_node);
-               of_node_put(dai_link->codecs->of_node);
+               for_each_link_cpus(dai_link, j, cpu)
+                       of_node_put(cpu->of_node);
+               for_each_link_codecs(dai_link, j, codec)
+                       of_node_put(codec->of_node);
        }
        return 0;
 }