return ret;
}
-static void graph_get_dais_count(struct asoc_simple_priv *priv,
- struct link_info *li);
+static int graph_get_dais_count(struct asoc_simple_priv *priv,
+ struct link_info *li);
int audio_graph_parse_of(struct asoc_simple_priv *priv, struct device *dev)
{
card->dev = dev;
memset(&li, 0, sizeof(li));
- graph_get_dais_count(priv, &li);
+ ret = graph_get_dais_count(priv, &li);
+ if (ret < 0)
+ return ret;
+
if (!li.link)
return -EINVAL;
return 0;
}
-static void graph_get_dais_count(struct asoc_simple_priv *priv,
- struct link_info *li)
+static int graph_get_dais_count(struct asoc_simple_priv *priv,
+ struct link_info *li)
{
/*
* link_num : number of links.
* => 4 DAIs = 2xCPU + 2xCodec
* => 1 ccnf = 1xdummy-Codec
*/
- graph_for_each_link(priv, li,
- graph_count_noml,
- graph_count_dpcm);
+ return graph_for_each_link(priv, li,
+ graph_count_noml,
+ graph_count_dpcm);
}
int audio_graph_card_probe(struct snd_soc_card *card)
return 0;
}
-static void simple_get_dais_count(struct asoc_simple_priv *priv,
- struct link_info *li)
+static int simple_get_dais_count(struct asoc_simple_priv *priv,
+ struct link_info *li)
{
struct device *dev = simple_priv_to_dev(priv);
struct device_node *top = dev->of_node;
li->num[0].platforms = 1;
li->link = 1;
- return;
+ return 0;
}
- simple_for_each_link(priv, li,
- simple_count_noml,
- simple_count_dpcm);
+ return simple_for_each_link(priv, li,
+ simple_count_noml,
+ simple_count_dpcm);
}
static int simple_soc_probe(struct snd_soc_card *card)
card->probe = simple_soc_probe;
memset(&li, 0, sizeof(li));
- simple_get_dais_count(priv, &li);
+ ret = simple_get_dais_count(priv, &li);
+ if (ret < 0)
+ return ret;
+
if (!li.link)
return -EINVAL;