Commit 2624fc78 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: audio-graph-scu-card: tidyup "prefix" parsing

audio-graph-scu-card.c is supporting "prefix" which is used to avoid
DAI naming conflict when CPU/Codec matching.
But, sound card might have multi sub-devices, and each codec might need
each prefix.

Now, ASoC is supporting snd_soc_of_parse_node_prefix(), let's support
it on audio-graph-scu-card, too. It is keeping existing DT style.

It can't support each codec's prefix if sound card had multi sub-devices
without this patch.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 264d1503
...@@ -39,6 +39,8 @@ struct graph_card_data { ...@@ -39,6 +39,8 @@ struct graph_card_data {
#define graph_priv_to_dev(priv) (graph_priv_to_card(priv)->dev) #define graph_priv_to_dev(priv) (graph_priv_to_card(priv)->dev)
#define graph_priv_to_link(priv, i) (graph_priv_to_card(priv)->dai_link + (i)) #define graph_priv_to_link(priv, i) (graph_priv_to_card(priv)->dai_link + (i))
#define PREFIX "audio-graph-card,"
static int asoc_graph_card_startup(struct snd_pcm_substream *substream) static int asoc_graph_card_startup(struct snd_pcm_substream *substream)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data; struct snd_soc_pcm_runtime *rtd = substream->private_data;
...@@ -98,6 +100,7 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep, ...@@ -98,6 +100,7 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
struct snd_soc_dai_link *dai_link = graph_priv_to_link(priv, idx); struct snd_soc_dai_link *dai_link = graph_priv_to_link(priv, idx);
struct graph_dai_props *dai_props = graph_priv_to_props(priv, idx); struct graph_dai_props *dai_props = graph_priv_to_props(priv, idx);
struct snd_soc_card *card = graph_priv_to_card(priv); struct snd_soc_card *card = graph_priv_to_card(priv);
struct device_node *node = of_graph_get_port_parent(ep);
int ret; int ret;
if (is_fe) { if (is_fe) {
...@@ -154,10 +157,17 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep, ...@@ -154,10 +157,17 @@ static int asoc_graph_card_dai_link_of(struct device_node *ep,
if (ret < 0) if (ret < 0)
return ret; return ret;
/* check "prefix" from top node */
snd_soc_of_parse_audio_prefix(card, snd_soc_of_parse_audio_prefix(card,
&priv->codec_conf, &priv->codec_conf,
dai_link->codecs->of_node, dai_link->codecs->of_node,
"prefix"); "prefix");
/* check "prefix" from each node if top doesn't have */
if (!priv->codec_conf.of_node)
snd_soc_of_parse_node_prefix(node,
&priv->codec_conf,
dai_link->codecs->of_node,
PREFIX "prefix");
} }
ret = asoc_simple_card_of_parse_tdm(ep, &dai_props->dai); ret = asoc_simple_card_of_parse_tdm(ep, &dai_props->dai);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment