const struct snd_soc_dapm_route *of_dapm_routes;
        int num_of_dapm_routes;
        bool fully_routed;
+       bool disable_route_checks;
 
        /* lists of probed devices belonging to this card */
        struct list_head component_dev_list;
 
        ret = snd_soc_dapm_add_routes(dapm,
                                      component->driver->dapm_routes,
                                      component->driver->num_dapm_routes);
-       if (ret < 0)
-               goto err_probe;
+       if (ret < 0) {
+               if (card->disable_route_checks) {
+                       dev_info(card->dev,
+                                "%s: disable_route_checks set, ignoring errors on add_routes\n",
+                                __func__);
+               } else {
+                       dev_err(card->dev,
+                               "%s: snd_soc_dapm_add_routes failed: %d\n",
+                               __func__, ret);
+                       goto err_probe;
+               }
+       }
 
        /* see for_each_card_components */
        list_add(&component->card_list, &card->component_dev_list);
 
        ret = snd_soc_dapm_add_routes(&card->dapm, card->dapm_routes,
                                      card->num_dapm_routes);
-       if (ret < 0)
-               goto probe_end;
+       if (ret < 0) {
+               if (card->disable_route_checks) {
+                       dev_info(card->dev,
+                                "%s: disable_route_checks set, ignoring errors on add_routes\n",
+                                __func__);
+               } else {
+                       dev_err(card->dev,
+                                "%s: snd_soc_dapm_add_routes failed: %d\n",
+                                __func__, ret);
+                       goto probe_end;
+               }
+       }
 
        ret = snd_soc_dapm_add_routes(&card->dapm, card->of_dapm_routes,
                                      card->num_of_dapm_routes);