summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2018-12-13 21:35:24 -0500
committerMark Brown <broonie@kernel.org>2018-12-14 06:48:57 -0500
commitcfc652a73331c3b465e3f8dd39a3d6b71e6b3a66 (patch)
treee922dd2ce9c3cdb590f552677637365383abc280 /sound
parentdd82410f7e939f00591c415d62915a89ac2fb8f0 (diff)
ASoC: simple-card: tidyup prefix for snd_soc_codec_conf
Current simple-card is handling "prefix" by many ways. But, it is not useful and readable. We want to do is that allow having it everywere. This patch supports it. It will be overwrote if lower node has it. sound { simple-audio-card,prefix = "xxx"; // initial simple-audio-card,dai-link { prefix = "xxx"; // overwrite cpu { ... }; codec { prefix = "xxx"; // overwrite }; }; }; Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/generic/simple-card.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index fb18e5148aad..37e001cf9cd1 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -177,8 +177,9 @@ static int asoc_simple_card_dai_link_of_dpcm(struct device_node *top,
177 struct device *dev = simple_priv_to_dev(priv); 177 struct device *dev = simple_priv_to_dev(priv);
178 struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, link_idx); 178 struct snd_soc_dai_link *dai_link = simple_priv_to_link(priv, link_idx);
179 struct simple_dai_props *dai_props = simple_priv_to_props(priv, link_idx); 179 struct simple_dai_props *dai_props = simple_priv_to_props(priv, link_idx);
180 struct snd_soc_card *card = simple_priv_to_card(priv);
181 struct asoc_simple_dai *dai; 180 struct asoc_simple_dai *dai;
181 struct snd_soc_dai_link_component *codecs = dai_link->codecs;
182
182 char prop[128]; 183 char prop[128];
183 char *prefix = ""; 184 char *prefix = "";
184 int ret; 185 int ret;
@@ -189,10 +190,8 @@ static int asoc_simple_card_dai_link_of_dpcm(struct device_node *top,
189 190
190 if (is_fe) { 191 if (is_fe) {
191 int is_single_links = 0; 192 int is_single_links = 0;
192 struct snd_soc_dai_link_component *codecs;
193 193
194 /* BE is dummy */ 194 /* BE is dummy */
195 codecs = dai_link->codecs;
196 codecs->of_node = NULL; 195 codecs->of_node = NULL;
197 codecs->dai_name = "snd-soc-dummy-dai"; 196 codecs->dai_name = "snd-soc-dummy-dai";
198 codecs->name = "snd-soc-dummy"; 197 codecs->name = "snd-soc-dummy";
@@ -248,19 +247,17 @@ static int asoc_simple_card_dai_link_of_dpcm(struct device_node *top,
248 247
249 ret = asoc_simple_card_set_dailink_name(dev, dai_link, 248 ret = asoc_simple_card_set_dailink_name(dev, dai_link,
250 "be.%s", 249 "be.%s",
251 dai_link->codecs->dai_name); 250 codecs->dai_name);
252 if (ret < 0) 251 if (ret < 0)
253 return ret; 252 return ret;
254 253
255 /* check "prefix" from top node */ 254 /* check "prefix" from top node */
256 snd_soc_of_parse_audio_prefix(card, cconf, 255 snd_soc_of_parse_node_prefix(top, cconf, codecs->of_node,
257 dai_link->codecs->of_node,
258 PREFIX "prefix"); 256 PREFIX "prefix");
259 /* check "prefix" from each node if top doesn't have */ 257 snd_soc_of_parse_node_prefix(node, cconf, codecs->of_node,
260 if (!cconf->of_node) 258 "prefix");
261 snd_soc_of_parse_node_prefix(np, cconf, 259 snd_soc_of_parse_node_prefix(np, cconf, codecs->of_node,
262 dai_link->codecs->of_node, 260 "prefix");
263 "prefix");
264 } 261 }
265 262
266 asoc_simple_card_parse_convert(dev, top, PREFIX, &dai_props->adata); 263 asoc_simple_card_parse_convert(dev, top, PREFIX, &dai_props->adata);