| From bd5bad45d1376564ebe943609356cbfe45c80c49 Mon Sep 17 00:00:00 2001 |
| From: Jyri Sarha <jsarha@ti.com> |
| Date: Thu, 24 Apr 2014 19:42:00 +0300 |
| Subject: ASoC: simple-card: is_top_level_node parameter to |
| simple_card_dai_link_of() |
| |
| Restore correct parsing of dai-link subnodes with more explicit |
| implementation for applying the "simple-audio-card,"-prefix to |
| dai-link property and subnode names. |
| |
| Signed-off-by: Jyri Sarha <jsarha@ti.com> |
| Signed-off-by: Mark Brown <broonie@linaro.org> |
| (cherry picked from commit 648722155dc081b019ab0ef548bbebde760a2b83) |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| --- |
| sound/soc/generic/simple-card.c | 11 +++++++---- |
| 1 file changed, 7 insertions(+), 4 deletions(-) |
| |
| diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c |
| index 98f97e543c29..06fe0e22b267 100644 |
| --- a/sound/soc/generic/simple-card.c |
| +++ b/sound/soc/generic/simple-card.c |
| @@ -144,7 +144,8 @@ asoc_simple_card_sub_parse_of(struct device_node *np, |
| static int simple_card_dai_link_of(struct device_node *node, |
| struct device *dev, |
| struct snd_soc_dai_link *dai_link, |
| - struct simple_dai_props *dai_props) |
| + struct simple_dai_props *dai_props, |
| + bool is_top_level_node) |
| { |
| struct device_node *np = NULL; |
| struct device_node *bitclkmaster = NULL; |
| @@ -155,7 +156,8 @@ static int simple_card_dai_link_of(struct device_node *node, |
| char *prefix = ""; |
| int ret; |
| |
| - prefix = "simple-audio-card,"; |
| + if (is_top_level_node) |
| + prefix = "simple-audio-card,"; |
| |
| daifmt = snd_soc_of_parse_daifmt(node, prefix, |
| &bitclkmaster, &framemaster); |
| @@ -307,14 +309,15 @@ static int asoc_simple_card_parse_of(struct device_node *node, |
| for (i = 0; (np = of_get_next_child(node, np)); i++) { |
| dev_dbg(dev, "\tlink %d:\n", i); |
| ret = simple_card_dai_link_of(np, dev, dai_link + i, |
| - dai_props + i); |
| + dai_props + i, false); |
| if (ret < 0) { |
| of_node_put(np); |
| return ret; |
| } |
| } |
| } else { |
| - ret = simple_card_dai_link_of(node, dev, dai_link, dai_props); |
| + ret = simple_card_dai_link_of(node, dev, dai_link, dai_props, |
| + true); |
| if (ret < 0) |
| return ret; |
| } |
| -- |
| 2.1.2 |
| |