summaryrefslogtreecommitdiffstats
path: root/sound/soc/generic/audio-graph-card.c
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2021-04-12 08:51:59 +0900
committerMark Brown <broonie@kernel.org>2021-04-13 12:32:45 +0100
commit59f5cd96e9b9e1025ab0a9dc4ce9dd8633190794 (patch)
tree42fef76fab13db0cd81a6fb03b1f5b2503b38372 /sound/soc/generic/audio-graph-card.c
parent13a9e21b80abf7956f8127304a07863ff2476828 (diff)
downloadlinux-59f5cd96e9b9e1025ab0a9dc4ce9dd8633190794.tar.gz
linux-59f5cd96e9b9e1025ab0a9dc4ce9dd8633190794.tar.bz2
linux-59f5cd96e9b9e1025ab0a9dc4ce9dd8633190794.zip
ASoC: simple-card-utils: setup dai_props cpu_dai/codec_dai at initial timing
We couldn't setup dai_props cpu_dai/codec_dai at the initial timing, because "counting DAIs loop" and "detecting DAIs loop" were different. But we can do it now, because these are using same loops. This patch setups dai_props cpu_dai/codec_dai at the initial timing. It can removes triky code from simple-card / audio-graph. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87tuocwfa8.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/generic/audio-graph-card.c')
-rw-r--r--sound/soc/generic/audio-graph-card.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 7be2c2cb253e..5ce5b7d62ee0 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -245,8 +245,7 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
dai_link->dynamic = 1;
dai_link->dpcm_merged_format = 1;
- dai =
- dai_props->cpu_dai = &priv->dais[li->dais++];
+ dai = dai_props->cpu_dai;
ret = asoc_simple_parse_cpu(ep, dai_link, &is_single_links);
if (ret)
@@ -288,11 +287,8 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
dai_link->no_pcm = 1;
dai_link->be_hw_params_fixup = asoc_simple_be_hw_params_fixup;
- dai =
- dai_props->codec_dai = &priv->dais[li->dais++];
-
- cconf =
- dai_props->codec_conf = &priv->codec_conf[li->conf++];
+ dai = dai_props->codec_dai;
+ cconf = dai_props->codec_conf;
ret = asoc_simple_parse_codec(ep, dai_link);
if (ret < 0)
@@ -358,19 +354,14 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv,
struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, li->link);
struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link);
struct device_node *top = dev->of_node;
- struct asoc_simple_dai *cpu_dai;
- struct asoc_simple_dai *codec_dai;
+ struct asoc_simple_dai *cpu_dai = dai_props->cpu_dai;
+ struct asoc_simple_dai *codec_dai = dai_props->codec_dai;
int ret, single_cpu = 0;
dev_dbg(dev, "link_of (%pOF)\n", cpu_ep);
li->link++;
- cpu_dai =
- dai_props->cpu_dai = &priv->dais[li->dais++];
- codec_dai =
- dai_props->codec_dai = &priv->dais[li->dais++];
-
/* Factor to mclk, used in hw_params() */
graph_parse_mclk_fs(top, cpu_ep, dai_props);
graph_parse_mclk_fs(top, codec_ep, dai_props);