}
static int snd_soc_dapm_add_route(struct snd_soc_dapm_context *dapm,
- const struct snd_soc_dapm_route *route)
+ const struct snd_soc_dapm_route *route,
+ unsigned int is_prefixed)
{
struct snd_soc_dapm_widget *wsource = NULL, *wsink = NULL, *w;
struct snd_soc_dapm_widget *wtsource = NULL, *wtsink = NULL;
char prefixed_source[80];
int ret;
- if (dapm->codec && dapm->codec->name_prefix) {
+ if (dapm->codec && dapm->codec->name_prefix && !is_prefixed) {
snprintf(prefixed_sink, sizeof(prefixed_sink), "%s %s",
dapm->codec->name_prefix, route->sink);
sink = prefixed_sink;
mutex_lock_nested(&dapm->card->dapm_mutex, SND_SOC_DAPM_CLASS_INIT);
for (i = 0; i < num; i++) {
- r = snd_soc_dapm_add_route(dapm, route);
+ r = snd_soc_dapm_add_route(dapm, route, false);
if (r < 0) {
dev_err(dapm->dev, "ASoC: Failed to add route %s -> %s -> %s\n",
route->source,
cpu_dai->codec->name, r.source,
codec_dai->platform->name, r.sink);
- snd_soc_dapm_add_route(&card->dapm, &r);
+ snd_soc_dapm_add_route(&card->dapm, &r, true);
}
/* connect BE DAI capture if widgets are valid */
codec_dai->codec->name, r.source,
cpu_dai->platform->name, r.sink);
- snd_soc_dapm_add_route(&card->dapm, &r);
+ snd_soc_dapm_add_route(&card->dapm, &r, true);
}
}