Message ID | 20191209135353.17427-1-daniel.baluta@nxp.com |
---|---|
State | Accepted |
Commit | 5525cf07d15f7c7eab619707627c31aa8e39dff1 |
Headers | show |
Series | ASoC: simple-card: Don't create separate link when platform is present | expand |
Hi > In normal sound case all DAIs are detected as CPU-Codec. > simple_dai_link_of supports the presence of a platform but it counts > it as a CPU DAI resulting in the creation of an extra link. > > Adding a platform property to a link description like: > > simple-audio-card,dai-link { > cpu { > sound-dai = <&sai1>; > }; > plat { > sound-dai = <&dsp>; > }; > codec { > sound-dai = <&wm8960>; > } > > will result in the creation of two links: > * sai1 <-> wm8960 > * dsp <-> wm8960 > > which is obviously not what we want. We just want one single link > with: > * sai1 <-> wm8960 (and platform set to dsp). > > Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com> > --- Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Thank you for your help !! Best regards --- Kuninori Morimoto
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 10b82bf043d1..55e9f8800b3e 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -371,6 +371,7 @@ static int simple_for_each_link(struct asoc_simple_priv *priv, do { struct asoc_simple_data adata; struct device_node *codec; + struct device_node *plat; struct device_node *np; int num = of_get_child_count(node); @@ -381,6 +382,9 @@ static int simple_for_each_link(struct asoc_simple_priv *priv, ret = -ENODEV; goto error; } + /* get platform */ + plat = of_get_child_by_name(node, is_top ? + PREFIX "plat" : "plat"); /* get convert-xxx property */ memset(&adata, 0, sizeof(adata)); @@ -389,6 +393,8 @@ static int simple_for_each_link(struct asoc_simple_priv *priv, /* loop for all CPU/Codec node */ for_each_child_of_node(node, np) { + if (plat == np) + continue; /* * It is DPCM * if it has many CPUs,
In normal sound case all DAIs are detected as CPU-Codec. simple_dai_link_of supports the presence of a platform but it counts it as a CPU DAI resulting in the creation of an extra link. Adding a platform property to a link description like: simple-audio-card,dai-link { cpu { sound-dai = <&sai1>; }; plat { sound-dai = <&dsp>; }; codec { sound-dai = <&wm8960>; } will result in the creation of two links: * sai1 <-> wm8960 * dsp <-> wm8960 which is obviously not what we want. We just want one single link with: * sai1 <-> wm8960 (and platform set to dsp). Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com> --- sound/soc/generic/simple-card.c | 6 ++++++ 1 file changed, 6 insertions(+) -- 2.17.1