@@ -87,7 +87,8 @@ asoc_simple_card_sub_parse_of(struct device_node *np,
unsigned int daifmt,
struct asoc_simple_dai *dai,
const struct device_node **p_node,
- const char **name)
+ const char **name,
+ bool is_cpu_dai_node)
{
struct device_node *node;
struct clk *clk;
@@ -117,7 +118,7 @@ asoc_simple_card_sub_parse_of(struct device_node *np,
* bitclock-master, frame-master
* and specific "format" if it has
*/
- dai->fmt = snd_soc_of_parse_daifmt(np, NULL);
+ dai->fmt = snd_soc_of_parse_daifmt(np, NULL, is_cpu_dai_node);
dai->fmt |= daifmt;
/*
@@ -165,7 +166,7 @@ static int asoc_simple_card_parse_of(struct device_node *node,
snd_soc_of_parse_card_name(&priv->snd_card, "simple-audio-card,name");
/* get CPU/CODEC common format via simple-audio-card,format */
- priv->daifmt = snd_soc_of_parse_daifmt(node, "simple-audio-card,") &
+ priv->daifmt = snd_soc_of_parse_daifmt(node, "simple-audio-card,", 0) &
(SND_SOC_DAIFMT_FORMAT_MASK | SND_SOC_DAIFMT_INV_MASK);
/* off-codec widgets */
@@ -191,7 +192,8 @@ static int asoc_simple_card_parse_of(struct device_node *node,
ret = asoc_simple_card_sub_parse_of(np, priv->daifmt,
&priv->cpu_dai,
&dai_link->cpu_of_node,
- &dai_link->cpu_dai_name);
+ &dai_link->cpu_dai_name,
+ true);
if (ret < 0)
return ret;
@@ -202,7 +204,8 @@ static int asoc_simple_card_parse_of(struct device_node *node,
ret = asoc_simple_card_sub_parse_of(np, priv->daifmt,
&priv->codec_dai,
&dai_link->codec_of_node,
- &dai_link->codec_dai_name);
+ &dai_link->codec_dai_name,
+ false);
if (ret < 0)
return ret;
snd_soc_of_parse_daifmt() needs to know if it is parsing a cpu-dai node. Signed-off-by: Jyri Sarha <jsarha@ti.com> --- sound/soc/generic/simple-card.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)