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;