Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets()
@ 2014-05-07 14:20 Lars-Peter Clausen
  2014-05-07 14:20 ` [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition" Lars-Peter Clausen
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Lars-Peter Clausen @ 2014-05-07 14:20 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel,
	Lars-Peter Clausen

For CODEC to CODEC DAI links the paths are created in snd_soc_dapm_new_pcm().
Also for CODEC to CODEC links the widgets are connected cross-over via a DAI
link widget, meaning that the capture widget of one CODEC will be connected to
the playback widget of the other and vice versa. Whereas
snd_soc_dapm_connect_dai_link_widgets() directly connects the playback widget of
the CPU DAI to the playback widget of the CODEC DAI and the capture widget of
the CPU DAI to the capture widget of the CODEC DAI. So not skipping
CODEC<->CODEC links in snd_soc_dapm_connect_dai_link_widgets() will create
incorrect connections between the two CODECs which will cause DAPM to detect
active paths where there are none and unnecessarily power up widgets.

Fixes: b893ea5 ("ASoC: sapm: Automatically connect DAI link widgets in DAPM graph.")
Cc: <stable@vger.kernel.org> (for 3.14+)
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/soc-dapm.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index fb6c7b7..142a738 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3410,8 +3410,11 @@ void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card)
 		cpu_dai = rtd->cpu_dai;
 		codec_dai = rtd->codec_dai;
 
-		/* dynamic FE links have no fixed DAI mapping */
-		if (rtd->dai_link->dynamic)
+		/*
+		 * dynamic FE links have no fixed DAI mapping.
+		 * CODEC<->CODEC links have no direct connection.
+		 */
+		if (rtd->dai_link->dynamic || rtd->dai_link->params)
 			continue;
 
 		/* there is no point in connecting BE DAI links with dummies */
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition"
  2014-05-07 14:20 [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Lars-Peter Clausen
@ 2014-05-07 14:20 ` Lars-Peter Clausen
  2014-05-12 15:00   ` Lars-Peter Clausen
  2014-05-12 20:35   ` Mark Brown
  2014-05-07 14:20 ` [PATCH v2 3/5] ASoC: dapm: Use snd_soc_dapm_add_path() in connect_dai_link_widgets() Lars-Peter Clausen
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 14+ messages in thread
From: Lars-Peter Clausen @ 2014-05-07 14:20 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel,
	Lars-Peter Clausen

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.
---
 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)
+				  const struct snd_soc_dapm_route *route)
 {
 	struct snd_soc_dapm_widget *wsource = NULL, *wsink = NULL, *w;
 	struct snd_soc_dapm_widget *wtsource = NULL, *wtsink = NULL;
@@ -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);
+		r = snd_soc_dapm_add_route(dapm, route);
 		if (r < 0) {
 			dev_err(dapm->dev, "ASoC: Failed to add route %s -> %s -> %s\n",
 				route->source,
@@ -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);
 		}
 
 	}
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 3/5] ASoC: dapm: Use snd_soc_dapm_add_path() in connect_dai_link_widgets()
  2014-05-07 14:20 [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Lars-Peter Clausen
  2014-05-07 14:20 ` [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition" Lars-Peter Clausen
@ 2014-05-07 14:20 ` Lars-Peter Clausen
  2014-05-12 20:35   ` Mark Brown
  2014-05-07 14:20 ` [PATCH v2 4/5] ASoC: dapm: Use snd_soc_dapm_add_path() in snd_soc_dapm_new_pcm() Lars-Peter Clausen
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: Lars-Peter Clausen @ 2014-05-07 14:20 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel,
	Lars-Peter Clausen

We already know which two widgets should be connected, so use
snd_soc_dapm_add_path() instead of snd_soc_dapm_add_route() in
snd_soc_dapm_connect_dai_link_widgets().

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/soc-dapm.c | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 08d869c..e28ce91 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3397,12 +3397,10 @@ int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card)
 void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card)
 {
 	struct snd_soc_pcm_runtime *rtd = card->rtd;
+	struct snd_soc_dapm_widget *sink, *source;
 	struct snd_soc_dai *cpu_dai, *codec_dai;
-	struct snd_soc_dapm_route r;
 	int i;
 
-	memset(&r, 0, sizeof(r));
-
 	/* for each BE DAI link... */
 	for (i = 0; i < card->num_rtd; i++) {
 		rtd = &card->rtd[i];
@@ -3423,26 +3421,27 @@ void snd_soc_dapm_connect_dai_link_widgets(struct snd_soc_card *card)
 
 		/* connect BE DAI playback if widgets are valid */
 		if (codec_dai->playback_widget && cpu_dai->playback_widget) {
-			r.source = cpu_dai->playback_widget->name;
-			r.sink = codec_dai->playback_widget->name;
+			source = cpu_dai->playback_widget;
+			sink = codec_dai->playback_widget;
 			dev_dbg(rtd->dev, "connected DAI link %s:%s -> %s:%s\n",
-				cpu_dai->codec->name, r.source,
-				codec_dai->platform->name, r.sink);
+				cpu_dai->codec->name, source->name,
+				codec_dai->platform->name, sink->name);
 
-			snd_soc_dapm_add_route(&card->dapm, &r);
+			snd_soc_dapm_add_path(&card->dapm, source, sink,
+				NULL, NULL);
 		}
 
 		/* connect BE DAI capture if widgets are valid */
 		if (codec_dai->capture_widget && cpu_dai->capture_widget) {
-			r.source = codec_dai->capture_widget->name;
-			r.sink = cpu_dai->capture_widget->name;
+			source = codec_dai->capture_widget;
+			sink = cpu_dai->capture_widget;
 			dev_dbg(rtd->dev, "connected DAI link %s:%s -> %s:%s\n",
-				codec_dai->codec->name, r.source,
-				cpu_dai->platform->name, r.sink);
+				codec_dai->codec->name, source->name,
+				cpu_dai->platform->name, sink->name);
 
-			snd_soc_dapm_add_route(&card->dapm, &r);
+			snd_soc_dapm_add_path(&card->dapm, source, sink,
+				NULL, NULL);
 		}
-
 	}
 }
 
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 4/5] ASoC: dapm: Use snd_soc_dapm_add_path() in snd_soc_dapm_new_pcm()
  2014-05-07 14:20 [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Lars-Peter Clausen
  2014-05-07 14:20 ` [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition" Lars-Peter Clausen
  2014-05-07 14:20 ` [PATCH v2 3/5] ASoC: dapm: Use snd_soc_dapm_add_path() in connect_dai_link_widgets() Lars-Peter Clausen
@ 2014-05-07 14:20 ` Lars-Peter Clausen
  2014-05-12 20:35   ` Mark Brown
  2014-05-07 14:20 ` [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets() Lars-Peter Clausen
  2014-05-12 20:34 ` [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Mark Brown
  4 siblings, 1 reply; 14+ messages in thread
From: Lars-Peter Clausen @ 2014-05-07 14:20 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel,
	Lars-Peter Clausen

We already know the widgets we want to connect, so use snd_soc_dapm_add_path()
instead of snd_soc_dapm_add_route() in snd_soc_dapm_new_pcm().

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/soc-dapm.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index e28ce91..d7958f4 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3242,11 +3242,11 @@ int snd_soc_dapm_new_pcm(struct snd_soc_card *card,
 			 struct snd_soc_dapm_widget *source,
 			 struct snd_soc_dapm_widget *sink)
 {
-	struct snd_soc_dapm_route routes[2];
 	struct snd_soc_dapm_widget template;
 	struct snd_soc_dapm_widget *w;
 	size_t len;
 	char *link_name;
+	int ret;
 
 	len = strlen(source->name) + strlen(sink->name) + 2;
 	link_name = devm_kzalloc(card->dev, len, GFP_KERNEL);
@@ -3273,15 +3273,10 @@ int snd_soc_dapm_new_pcm(struct snd_soc_card *card,
 
 	w->params = params;
 
-	memset(&routes, 0, sizeof(routes));
-
-	routes[0].source = source->name;
-	routes[0].sink = link_name;
-	routes[1].source = link_name;
-	routes[1].sink = sink->name;
-
-	return snd_soc_dapm_add_routes(&card->dapm, routes,
-				       ARRAY_SIZE(routes));
+	ret = snd_soc_dapm_add_path(&card->dapm, source, w, NULL, NULL);
+	if (ret)
+		return ret;
+	return snd_soc_dapm_add_path(&card->dapm, w, sink, NULL, NULL);
 }
 
 int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm,
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets()
  2014-05-07 14:20 [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Lars-Peter Clausen
                   ` (2 preceding siblings ...)
  2014-05-07 14:20 ` [PATCH v2 4/5] ASoC: dapm: Use snd_soc_dapm_add_path() in snd_soc_dapm_new_pcm() Lars-Peter Clausen
@ 2014-05-07 14:20 ` Lars-Peter Clausen
  2014-05-12 14:37   ` Charles Keepax
  2014-05-12 20:37   ` Mark Brown
  2014-05-12 20:34 ` [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Mark Brown
  4 siblings, 2 replies; 14+ messages in thread
From: Lars-Peter Clausen @ 2014-05-07 14:20 UTC (permalink / raw)
  To: Mark Brown, Liam Girdwood
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel,
	Lars-Peter Clausen

If we find a widget who's stream name matches the name of a DAI widget then
thats the one it should be connected to. Based on the widget id we can say in
which direction the path should be. No need to go back to the DAI and check the
stream names.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 sound/soc/soc-dapm.c | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index d7958f4..bed17a3 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3334,6 +3334,7 @@ int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm,
 int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card)
 {
 	struct snd_soc_dapm_widget *dai_w, *w;
+	struct snd_soc_dapm_widget *src, *sink;
 	struct snd_soc_dai *dai;
 
 	/* For each DAI widget... */
@@ -3364,25 +3365,15 @@ int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card)
 			if (!w->sname || !strstr(w->sname, dai_w->name))
 				continue;
 
-			if (dai->driver->playback.stream_name &&
-			    strstr(w->sname,
-				   dai->driver->playback.stream_name)) {
-				dev_dbg(dai->dev, "%s -> %s\n",
-					 dai->playback_widget->name, w->name);
-
-				snd_soc_dapm_add_path(w->dapm,
-					dai->playback_widget, w, NULL, NULL);
-			}
-
-			if (dai->driver->capture.stream_name &&
-			    strstr(w->sname,
-				   dai->driver->capture.stream_name)) {
-				dev_dbg(dai->dev, "%s -> %s\n",
-					w->name, dai->capture_widget->name);
-
-				snd_soc_dapm_add_path(w->dapm, w,
-					dai->capture_widget, NULL, NULL);
+			if (dai_w->id == snd_soc_dapm_dai_in) {
+				src = dai_w;
+				sink = w;
+			} else {
+				src = w;
+				sink = dai_w;
 			}
+			dev_dbg(dai->dev, "%s -> %s\n", src->name, sink->name);
+			snd_soc_dapm_add_path(w->dapm, src, sink, NULL, NULL);
 		}
 	}
 
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets()
  2014-05-07 14:20 ` [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets() Lars-Peter Clausen
@ 2014-05-12 14:37   ` Charles Keepax
  2014-05-12 14:38     ` Lars-Peter Clausen
  2014-05-12 20:37   ` Mark Brown
  1 sibling, 1 reply; 14+ messages in thread
From: Charles Keepax @ 2014-05-12 14:37 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel, Mark Brown,
	Liam Girdwood

On Wed, May 07, 2014 at 04:20:28PM +0200, Lars-Peter Clausen wrote:
> If we find a widget who's stream name matches the name of a DAI widget then
> thats the one it should be connected to. Based on the widget id we can say in
> which direction the path should be. No need to go back to the DAI and check the
> stream names.
> 
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
> ---
>  sound/soc/soc-dapm.c | 27 +++++++++------------------
>  1 file changed, 9 insertions(+), 18 deletions(-)
> 
> diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
> index d7958f4..bed17a3 100644
> --- a/sound/soc/soc-dapm.c
> +++ b/sound/soc/soc-dapm.c
> @@ -3334,6 +3334,7 @@ int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm,
>  int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card)
>  {
>  	struct snd_soc_dapm_widget *dai_w, *w;
> +	struct snd_soc_dapm_widget *src, *sink;
>  	struct snd_soc_dai *dai;

I think you have removed all the uses of this variable (dai) so you can
remove this as well.

Thanks,
Charles

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets()
  2014-05-12 14:37   ` Charles Keepax
@ 2014-05-12 14:38     ` Lars-Peter Clausen
  0 siblings, 0 replies; 14+ messages in thread
From: Lars-Peter Clausen @ 2014-05-12 14:38 UTC (permalink / raw)
  To: Charles Keepax
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel, Mark Brown,
	Liam Girdwood

On 05/12/2014 04:37 PM, Charles Keepax wrote:
> On Wed, May 07, 2014 at 04:20:28PM +0200, Lars-Peter Clausen wrote:
>> If we find a widget who's stream name matches the name of a DAI widget then
>> thats the one it should be connected to. Based on the widget id we can say in
>> which direction the path should be. No need to go back to the DAI and check the
>> stream names.
>>
>> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
>> ---
>>   sound/soc/soc-dapm.c | 27 +++++++++------------------
>>   1 file changed, 9 insertions(+), 18 deletions(-)
>>
>> diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
>> index d7958f4..bed17a3 100644
>> --- a/sound/soc/soc-dapm.c
>> +++ b/sound/soc/soc-dapm.c
>> @@ -3334,6 +3334,7 @@ int snd_soc_dapm_new_dai_widgets(struct snd_soc_dapm_context *dapm,
>>   int snd_soc_dapm_link_dai_widgets(struct snd_soc_card *card)
>>   {
>>   	struct snd_soc_dapm_widget *dai_w, *w;
>> +	struct snd_soc_dapm_widget *src, *sink;
>>   	struct snd_soc_dai *dai;
>
> I think you have removed all the uses of this variable (dai) so you can
> remove this as well.

It is still used in the dev_dbg() call.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition"
  2014-05-07 14:20 ` [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition" Lars-Peter Clausen
@ 2014-05-12 15:00   ` Lars-Peter Clausen
  2014-05-12 20:22     ` Arun Shamanna Lakshmi
  2014-05-12 20:35   ` Mark Brown
  1 sibling, 1 reply; 14+ messages in thread
From: Lars-Peter Clausen @ 2014-05-12 15:00 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel, Mark Brown,
	Liam Girdwood

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)
> +				  const struct snd_soc_dapm_route *route)
>   {
>   	struct snd_soc_dapm_widget *wsource = NULL, *wsink = NULL, *w;
>   	struct snd_soc_dapm_widget *wtsource = NULL, *wtsink = NULL;
> @@ -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);
> +		r = snd_soc_dapm_add_route(dapm, route);
>   		if (r < 0) {
>   			dev_err(dapm->dev, "ASoC: Failed to add route %s -> %s -> %s\n",
>   				route->source,
> @@ -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);
>   		}
>
>   	}
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition"
  2014-05-12 15:00   ` Lars-Peter Clausen
@ 2014-05-12 20:22     ` Arun Shamanna Lakshmi
  0 siblings, 0 replies; 14+ messages in thread
From: Arun Shamanna Lakshmi @ 2014-05-12 20:22 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Songhee Baek, alsa-devel@alsa-project.org, Mark Brown,
	Liam Girdwood


> -----Original Message-----
> From: Lars-Peter Clausen [mailto:lars@metafoo.de]
> Sent: Monday, May 12, 2014 8:00 AM
> To: Lars-Peter Clausen
> Cc: Mark Brown; Liam Girdwood; Songhee Baek; Arun Shamanna Lakshmi;
> alsa-devel@alsa-project.org
> Subject: Re: [alsa-devel] [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix
> double prefix addition"
> 
> 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

We tested the latest upstream kernel and it works without our patch. So, it's
okay to revert this and sorry to push this patch in the first place.

> 
> > ---
> >   sound/soc/soc-dapm.c | 11 +++++------
> >   1 file changed, 5 insertions(+), 6 deletions(-)
> >

-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets()
  2014-05-07 14:20 [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Lars-Peter Clausen
                   ` (3 preceding siblings ...)
  2014-05-07 14:20 ` [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets() Lars-Peter Clausen
@ 2014-05-12 20:34 ` Mark Brown
  4 siblings, 0 replies; 14+ messages in thread
From: Mark Brown @ 2014-05-12 20:34 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel, Liam Girdwood


[-- Attachment #1.1: Type: text/plain, Size: 326 bytes --]

On Wed, May 07, 2014 at 04:20:24PM +0200, Lars-Peter Clausen wrote:
> For CODEC to CODEC DAI links the paths are created in snd_soc_dapm_new_pcm().
> Also for CODEC to CODEC links the widgets are connected cross-over via a DAI
> link widget, meaning that the capture widget of one CODEC will be connected to

Applied, thanks.

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition"
  2014-05-07 14:20 ` [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition" Lars-Peter Clausen
  2014-05-12 15:00   ` Lars-Peter Clausen
@ 2014-05-12 20:35   ` Mark Brown
  1 sibling, 0 replies; 14+ messages in thread
From: Mark Brown @ 2014-05-12 20:35 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel, Liam Girdwood


[-- Attachment #1.1: Type: text/plain, Size: 443 bytes --]

On Wed, May 07, 2014 at 04:20:25PM +0200, 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().

Applied, thanks.  Please take care over the word wrapping in your commit
logs - they're bumping right at the 80 column limit usually.

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 3/5] ASoC: dapm: Use snd_soc_dapm_add_path() in connect_dai_link_widgets()
  2014-05-07 14:20 ` [PATCH v2 3/5] ASoC: dapm: Use snd_soc_dapm_add_path() in connect_dai_link_widgets() Lars-Peter Clausen
@ 2014-05-12 20:35   ` Mark Brown
  0 siblings, 0 replies; 14+ messages in thread
From: Mark Brown @ 2014-05-12 20:35 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel, Liam Girdwood


[-- Attachment #1.1: Type: text/plain, Size: 258 bytes --]

On Wed, May 07, 2014 at 04:20:26PM +0200, Lars-Peter Clausen wrote:
> We already know which two widgets should be connected, so use
> snd_soc_dapm_add_path() instead of snd_soc_dapm_add_route() in
> snd_soc_dapm_connect_dai_link_widgets().

Applied, thanks.

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 4/5] ASoC: dapm: Use snd_soc_dapm_add_path() in snd_soc_dapm_new_pcm()
  2014-05-07 14:20 ` [PATCH v2 4/5] ASoC: dapm: Use snd_soc_dapm_add_path() in snd_soc_dapm_new_pcm() Lars-Peter Clausen
@ 2014-05-12 20:35   ` Mark Brown
  0 siblings, 0 replies; 14+ messages in thread
From: Mark Brown @ 2014-05-12 20:35 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel, Liam Girdwood


[-- Attachment #1.1: Type: text/plain, Size: 232 bytes --]

On Wed, May 07, 2014 at 04:20:27PM +0200, Lars-Peter Clausen wrote:
> We already know the widgets we want to connect, so use snd_soc_dapm_add_path()
> instead of snd_soc_dapm_add_route() in snd_soc_dapm_new_pcm().

Applied, thanks.

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets()
  2014-05-07 14:20 ` [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets() Lars-Peter Clausen
  2014-05-12 14:37   ` Charles Keepax
@ 2014-05-12 20:37   ` Mark Brown
  1 sibling, 0 replies; 14+ messages in thread
From: Mark Brown @ 2014-05-12 20:37 UTC (permalink / raw)
  To: Lars-Peter Clausen
  Cc: Songhee Baek, Arun Shamanna Lakshmi, alsa-devel, Liam Girdwood


[-- Attachment #1.1: Type: text/plain, Size: 342 bytes --]

On Wed, May 07, 2014 at 04:20:28PM +0200, Lars-Peter Clausen wrote:
> If we find a widget who's stream name matches the name of a DAI widget then
> thats the one it should be connected to. Based on the widget id we can say in
> which direction the path should be. No need to go back to the DAI and check the
> stream names.

Applied, thanks.

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-05-12 20:37 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-07 14:20 [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Lars-Peter Clausen
2014-05-07 14:20 ` [PATCH v2 2/5] ASoC: Revert "ASoC: dapm: Fix double prefix addition" Lars-Peter Clausen
2014-05-12 15:00   ` Lars-Peter Clausen
2014-05-12 20:22     ` Arun Shamanna Lakshmi
2014-05-12 20:35   ` Mark Brown
2014-05-07 14:20 ` [PATCH v2 3/5] ASoC: dapm: Use snd_soc_dapm_add_path() in connect_dai_link_widgets() Lars-Peter Clausen
2014-05-12 20:35   ` Mark Brown
2014-05-07 14:20 ` [PATCH v2 4/5] ASoC: dapm: Use snd_soc_dapm_add_path() in snd_soc_dapm_new_pcm() Lars-Peter Clausen
2014-05-12 20:35   ` Mark Brown
2014-05-07 14:20 ` [PATCH v2 5/5] ASoC: dapm: Simplify snd_soc_dapm_link_dai_widgets() Lars-Peter Clausen
2014-05-12 14:37   ` Charles Keepax
2014-05-12 14:38     ` Lars-Peter Clausen
2014-05-12 20:37   ` Mark Brown
2014-05-12 20:34 ` [PATCH v2 1/5] ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox