On 05/07/2014 04:20 PM, Lars-Peter Clausen wrote:
This reverts commit bd23c5b661858446267f4d6b2fb4edd8eb710dda.
The patch claims that the patch is necessary to avoid double prefix addition when calling snd_soc_dapm_add_route() from snd_soc_dapm_connect_dai_link_widgets(). But snd_soc_dapm_add_route() is called with the card's DAPM context, which does not have a prefix, which means there is no prefix that could be added a second time.
Signed-off-by: Lars-Peter Clausen lars@metafoo.de
I might be missing something. My best guess is that this was needed in some vendor tree, but not in upstream.
Hi Songhee, Arun,
Can you take a look at this? I think the reason why you had this patch is because this was needed to prevent double prefix addition in snd_soc_dapm_link_dai_widgets(). All other places where dapm_add_route() is/was used do not suffer the problem of double prefix addition. But snd_soc_dapm_link_dai_widgets() was changed in commit commit 2553628e ("ASoC: dapm: Add snd_soc_dapm_add_path() helper function") to use dapm_add_path which does not have the problem since it doesn't try to add a prefix. v3.12 was the first kernel that had this commit and I think that you forward ported this change from a vendor tree that was based on an earlier version. So in summery I think the issue that you tried to fix this patch was already fixed by the time you submitted the patch.
Thanks, - Lars
sound/soc/soc-dapm.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 142a738..08d869c 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -2381,8 +2381,7 @@ err: }
static int snd_soc_dapm_add_route(struct snd_soc_dapm_context *dapm,
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;const struct snd_soc_dapm_route *route)
@@ -2392,7 +2391,7 @@ static int snd_soc_dapm_add_route(struct snd_soc_dapm_context *dapm, char prefixed_source[80]; int ret;
- if (dapm->codec && dapm->codec->name_prefix && !is_prefixed) {
- if (dapm->codec && dapm->codec->name_prefix) { snprintf(prefixed_sink, sizeof(prefixed_sink), "%s %s", dapm->codec->name_prefix, route->sink); sink = prefixed_sink;
@@ -2520,7 +2519,7 @@ int snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm,
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, false);
if (r < 0) { dev_err(dapm->dev, "ASoC: Failed to add route %s -> %s -> %s\n", route->source,r = snd_soc_dapm_add_route(dapm, route);
@@ -3430,7 +3429,7 @@ void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card) cpu_dai->codec->name, r.source, codec_dai->platform->name, r.sink);
snd_soc_dapm_add_route(&card->dapm, &r, true);
snd_soc_dapm_add_route(&card->dapm, &r);
}
/* connect BE DAI capture if widgets are valid */
@@ -3441,7 +3440,7 @@ void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card) codec_dai->codec->name, r.source, cpu_dai->platform->name, r.sink);
snd_soc_dapm_add_route(&card->dapm, &r, true);
snd_soc_dapm_add_route(&card->dapm, &r);
}
}