[PATCH 0/5] ASoC: simple-card/audio-graph: adjust to multi CPU/Codec
Hi Mark
These patches adjusts to multi CPU/Codec on simple-card / audio-graph. This is part of prepare for new audio-graph-card2.
Kuninori Morimoto (5): ASoC: simple-card: remove unused variable from simple_parse_of() ASoC: simple-card: use asoc_link_to_xxx() macro ASoC: simple-card: use simple_props_to_xxx() macro ASoC: audio-graph: use asoc_link_to_xxx() macro ASoC: audio-graph: use simple_props_to_xxx() macro
sound/soc/generic/audio-graph-card.c | 43 +++++++++++++----------- sound/soc/generic/simple-card.c | 50 +++++++++++++--------------- 2 files changed, 47 insertions(+), 46 deletions(-)
From: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
commit d9ffff696c5b4 ("ASoC: simple-card: Use snd_soc_of_parse_aux_devs()") switched to use snd_soc_of_parse_aux_devs() on simple_parse_of(). Thus noone is using *top anymore. Let's cleanup unused variable.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com --- sound/soc/generic/simple-card.c | 5 ----- 1 file changed, 5 deletions(-)
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index bf5ddf1ea65f..7a87cd56d513 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -441,15 +441,10 @@ static int simple_for_each_link(struct asoc_simple_priv *priv,
static int simple_parse_of(struct asoc_simple_priv *priv) { - struct device *dev = simple_priv_to_dev(priv); - struct device_node *top = dev->of_node; struct snd_soc_card *card = simple_priv_to_card(priv); struct link_info li; int ret;
- if (!top) - return -EINVAL; - ret = asoc_simple_parse_widgets(card, PREFIX); if (ret < 0) return ret;
From: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
We shouldn't use dai_link->cpus/codecs/platforms directly, because these are array now to supporting multi CPU/Codec/Platform. This patch uses asoc_link_to_xxx() macro for it.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com --- sound/soc/generic/simple-card.c | 35 ++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 16 deletions(-)
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 7a87cd56d513..9462b0d21486 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -122,9 +122,9 @@ static int simple_dai_link_of_dpcm(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 asoc_simple_dai *dai; - struct snd_soc_dai_link_component *cpus = dai_link->cpus; - struct snd_soc_dai_link_component *codecs = dai_link->codecs; - struct snd_soc_dai_link_component *platforms = dai_link->platforms; + struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0); + struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0); + struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0); struct device_node *top = dev->of_node; struct device_node *node = of_get_parent(np); char *prefix = ""; @@ -149,11 +149,11 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv,
dai = dai_props->cpu_dai;
- ret = asoc_simple_parse_dai(np, dai_link->cpus, &is_single_links); + ret = asoc_simple_parse_dai(np, cpus, &is_single_links); if (ret) goto out_put_node;
- ret = asoc_simple_parse_clk(dev, np, dai, dai_link->cpus); + ret = asoc_simple_parse_clk(dev, np, dai, cpus); if (ret < 0) goto out_put_node;
@@ -177,11 +177,11 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv, dai = dai_props->codec_dai; cconf = dai_props->codec_conf;
- ret = asoc_simple_parse_dai(np, dai_link->codecs, NULL); + ret = asoc_simple_parse_dai(np, codecs, NULL); if (ret < 0) goto out_put_node;
- ret = asoc_simple_parse_clk(dev, np, dai, dai_link->codecs); + ret = asoc_simple_parse_clk(dev, np, dai, codecs); if (ret < 0) goto out_put_node;
@@ -233,6 +233,9 @@ static int simple_dai_link_of(struct asoc_simple_priv *priv, struct simple_dai_props *dai_props = simple_priv_to_props(priv, li->link); struct asoc_simple_dai *cpu_dai = dai_props->cpu_dai; struct asoc_simple_dai *codec_dai = dai_props->codec_dai; + struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0); + struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0); + struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0); struct device_node *top = dev->of_node; struct device_node *cpu = NULL; struct device_node *node = NULL; @@ -261,15 +264,15 @@ static int simple_dai_link_of(struct asoc_simple_priv *priv,
simple_parse_mclk_fs(top, cpu, codec, dai_props, prefix);
- ret = asoc_simple_parse_dai(cpu, dai_link->cpus, &single_cpu); + ret = asoc_simple_parse_dai(cpu, cpus, &single_cpu); if (ret < 0) goto dai_link_of_err;
- ret = asoc_simple_parse_dai(codec, dai_link->codecs, NULL); + ret = asoc_simple_parse_dai(codec, codecs, NULL); if (ret < 0) goto dai_link_of_err;
- ret = asoc_simple_parse_dai(plat, dai_link->platforms, NULL); + ret = asoc_simple_parse_dai(plat, platforms, NULL); if (ret < 0) goto dai_link_of_err;
@@ -281,26 +284,26 @@ static int simple_dai_link_of(struct asoc_simple_priv *priv, if (ret < 0) goto dai_link_of_err;
- ret = asoc_simple_parse_clk(dev, cpu, cpu_dai, dai_link->cpus); + ret = asoc_simple_parse_clk(dev, cpu, cpu_dai, cpus); if (ret < 0) goto dai_link_of_err;
- ret = asoc_simple_parse_clk(dev, codec, codec_dai, dai_link->codecs); + ret = asoc_simple_parse_clk(dev, codec, codec_dai, codecs); if (ret < 0) goto dai_link_of_err;
ret = asoc_simple_set_dailink_name(dev, dai_link, "%s-%s", - dai_link->cpus->dai_name, - dai_link->codecs->dai_name); + cpus->dai_name, + codecs->dai_name); if (ret < 0) goto dai_link_of_err;
dai_link->ops = &simple_ops; dai_link->init = asoc_simple_dai_init;
- asoc_simple_canonicalize_cpu(dai_link->cpus, single_cpu); - asoc_simple_canonicalize_platform(dai_link->platforms, dai_link->cpus); + asoc_simple_canonicalize_cpu(cpus, single_cpu); + asoc_simple_canonicalize_platform(platforms, cpus);
dai_link_of_err: of_node_put(plat);
From: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
We shouldn't use dai_props->cpus/codecs directly, because these are array now to supporting multi CPU/Codec/Platform. This patch uses simple_props_to_xxx() macro for it.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com --- sound/soc/generic/simple-card.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 9462b0d21486..5a686f82d1b4 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -147,7 +147,7 @@ static int simple_dai_link_of_dpcm(struct asoc_simple_priv *priv, dai_link->dynamic = 1; dai_link->dpcm_merged_format = 1;
- dai = dai_props->cpu_dai; + dai = simple_props_to_dai_cpu(dai_props, 0);
ret = asoc_simple_parse_dai(np, cpus, &is_single_links); if (ret) @@ -174,8 +174,8 @@ static int simple_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; - cconf = dai_props->codec_conf; + dai = simple_props_to_dai_codec(dai_props, 0); + cconf = simple_props_to_codec_conf(dai_props, 0);
ret = asoc_simple_parse_dai(np, codecs, NULL); if (ret < 0) @@ -231,8 +231,8 @@ static int simple_dai_link_of(struct asoc_simple_priv *priv, struct device *dev = simple_priv_to_dev(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 asoc_simple_dai *cpu_dai = dai_props->cpu_dai; - struct asoc_simple_dai *codec_dai = dai_props->codec_dai; + struct asoc_simple_dai *cpu_dai = simple_props_to_dai_cpu(dai_props, 0); + struct asoc_simple_dai *codec_dai = simple_props_to_dai_codec(dai_props, 0); struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0); struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0); struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0);
From: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
We shouldn't use dai_link->cpus/codecs/platforms directly, because these are array now to supporting multi CPU/Codec/Platform. This patch uses asoc_link_to_xxx() macro for it.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com --- sound/soc/generic/audio-graph-card.c | 33 +++++++++++++++------------- 1 file changed, 18 insertions(+), 15 deletions(-)
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index 0582fe296471..55384f1415b3 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -224,9 +224,9 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv, struct device_node *ports; struct device_node *node; struct asoc_simple_dai *dai; - struct snd_soc_dai_link_component *cpus = dai_link->cpus; - struct snd_soc_dai_link_component *codecs = dai_link->codecs; - struct snd_soc_dai_link_component *platforms = dai_link->platforms; + struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0); + struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0); + struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0); int ret;
port = of_get_parent(ep); @@ -248,11 +248,11 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv,
dai = dai_props->cpu_dai;
- ret = asoc_simple_parse_dai(ep, dai_link->cpus, &is_single_links); + ret = asoc_simple_parse_dai(ep, cpus, &is_single_links); if (ret) goto out_put_node;
- ret = asoc_simple_parse_clk(dev, ep, dai, dai_link->cpus); + ret = asoc_simple_parse_clk(dev, ep, dai, cpus); if (ret < 0) goto out_put_node;
@@ -291,11 +291,11 @@ static int graph_dai_link_of_dpcm(struct asoc_simple_priv *priv, dai = dai_props->codec_dai; cconf = dai_props->codec_conf;
- ret = asoc_simple_parse_dai(ep, dai_link->codecs, NULL); + ret = asoc_simple_parse_dai(ep, codecs, NULL); if (ret < 0) goto out_put_node;
- ret = asoc_simple_parse_clk(dev, ep, dai, dai_link->codecs); + ret = asoc_simple_parse_clk(dev, ep, dai, codecs); if (ret < 0) goto out_put_node;
@@ -357,6 +357,9 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv, struct device_node *top = dev->of_node; struct asoc_simple_dai *cpu_dai = dai_props->cpu_dai; struct asoc_simple_dai *codec_dai = dai_props->codec_dai; + struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0); + struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0); + struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0); int ret, single_cpu = 0;
dev_dbg(dev, "link_of (%pOF)\n", cpu_ep); @@ -372,11 +375,11 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv, if (ret < 0) return ret;
- ret = asoc_simple_parse_dai(cpu_ep, dai_link->cpus, &single_cpu); + ret = asoc_simple_parse_dai(cpu_ep, cpus, &single_cpu); if (ret < 0) return ret;
- ret = asoc_simple_parse_dai(codec_ep, dai_link->codecs, NULL); + ret = asoc_simple_parse_dai(codec_ep, codecs, NULL); if (ret < 0) return ret;
@@ -388,26 +391,26 @@ static int graph_dai_link_of(struct asoc_simple_priv *priv, if (ret < 0) return ret;
- ret = asoc_simple_parse_clk(dev, cpu_ep, cpu_dai, dai_link->cpus); + ret = asoc_simple_parse_clk(dev, cpu_ep, cpu_dai, cpus); if (ret < 0) return ret;
- ret = asoc_simple_parse_clk(dev, codec_ep, codec_dai, dai_link->codecs); + ret = asoc_simple_parse_clk(dev, codec_ep, codec_dai, codecs); if (ret < 0) return ret;
ret = asoc_simple_set_dailink_name(dev, dai_link, "%s-%s", - dai_link->cpus->dai_name, - dai_link->codecs->dai_name); + cpus->dai_name, + codecs->dai_name); if (ret < 0) return ret;
dai_link->ops = &graph_ops; dai_link->init = asoc_simple_dai_init;
- asoc_simple_canonicalize_cpu(dai_link->cpus, single_cpu); - asoc_simple_canonicalize_platform(dai_link->platforms, dai_link->cpus); + asoc_simple_canonicalize_cpu(cpus, single_cpu); + asoc_simple_canonicalize_platform(platforms, cpus);
return 0; }
From: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
We shouldn't use dai_props->cpus/codecs directly, because these are array now to supporting multi CPU/Codec/Platform. This patch uses simple_props_to_xxx() macro for it.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com --- sound/soc/generic/audio-graph-card.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index 55384f1415b3..36b2ad7dd283 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -246,7 +246,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; + dai = simple_props_to_dai_cpu(dai_props, 0);
ret = asoc_simple_parse_dai(ep, cpus, &is_single_links); if (ret) @@ -288,8 +288,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; - cconf = dai_props->codec_conf; + dai = simple_props_to_dai_codec(dai_props, 0); + cconf = simple_props_to_codec_conf(dai_props, 0);
ret = asoc_simple_parse_dai(ep, codecs, NULL); if (ret < 0) @@ -355,8 +355,8 @@ 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 = dai_props->cpu_dai; - struct asoc_simple_dai *codec_dai = dai_props->codec_dai; + struct asoc_simple_dai *cpu_dai = simple_props_to_dai_cpu(dai_props, 0); + struct asoc_simple_dai *codec_dai = simple_props_to_dai_codec(dai_props, 0); struct snd_soc_dai_link_component *cpus = asoc_link_to_cpu(dai_link, 0); struct snd_soc_dai_link_component *codecs = asoc_link_to_codec(dai_link, 0); struct snd_soc_dai_link_component *platforms = asoc_link_to_platform(dai_link, 0);
On 14 Apr 2021 08:19:32 +0900, Kuninori Morimoto wrote:
These patches adjusts to multi CPU/Codec on simple-card / audio-graph. This is part of prepare for new audio-graph-card2.
Kuninori Morimoto (5): ASoC: simple-card: remove unused variable from simple_parse_of() ASoC: simple-card: use asoc_link_to_xxx() macro ASoC: simple-card: use simple_props_to_xxx() macro ASoC: audio-graph: use asoc_link_to_xxx() macro ASoC: audio-graph: use simple_props_to_xxx() macro
[...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/5] ASoC: simple-card: remove unused variable from simple_parse_of() commit: 8cbea89e2fba2f92937cd15211490b62f14a46ff [2/5] ASoC: simple-card: use asoc_link_to_xxx() macro commit: 5bb5ac71e3f4f85500b96ea03e54bf6e2d8be3f2 [3/5] ASoC: simple-card: use simple_props_to_xxx() macro commit: 2c33e20ffd68df097d61fad9b87dc6276354b139 [4/5] ASoC: audio-graph: use asoc_link_to_xxx() macro commit: 7ed5920995cea34d66e4af00c7f468cc933251cf [5/5] ASoC: audio-graph: use simple_props_to_xxx() macro commit: ae0727ab77419d550d6f68b698ce37ef2bf315df
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks, Mark
participants (2)
-
Kuninori Morimoto
-
Mark Brown