diff mbox

ASoC: rx51: Correct DAPM route for capture

Message ID 1422603163-13346-1-git-send-email-peter.ujfalusi@ti.com (mailing list archive)
State Accepted
Commit 2ca087bc9edafd7cd1e89d0ac61a31067985bd15
Headers show

Commit Message

Peter Ujfalusi Jan. 30, 2015, 7:32 a.m. UTC
"Mic Bias" is DAPM_SUPPLY so it has to be connected in the route
accordingly.
Fixes audio capture on the board.

Reported-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Pavel Machek <pavel@ucw.cz>
---
 sound/soc/omap/rx51.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Jarkko Nikula Jan. 30, 2015, 6:32 p.m. UTC | #1
On 01/30/2015 09:32 AM, Peter Ujfalusi wrote:
> "Mic Bias" is DAPM_SUPPLY so it has to be connected in the route
> accordingly.
> Fixes audio capture on the board.
> 
> Reported-by: Pavel Machek <pavel@ucw.cz>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Tested-by: Pavel Machek <pavel@ucw.cz>
> ---
>  sound/soc/omap/rx51.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/sound/soc/omap/rx51.c b/sound/soc/omap/rx51.c
> index 04896d6252a2..7f299357c2d2 100644
> --- a/sound/soc/omap/rx51.c
> +++ b/sound/soc/omap/rx51.c
> @@ -250,14 +250,14 @@ static const struct snd_soc_dapm_route audio_map[] = {
>  	{"FM Transmitter", NULL, "LLOUT"},
>  	{"FM Transmitter", NULL, "RLOUT"},
>  
> -	{"DMic Rate 64", NULL, "Mic Bias"},
> -	{"Mic Bias", NULL, "DMic"},
> +	{"DMic Rate 64", NULL, "DMic"},
> +	{"DMic", NULL, "Mic Bias"},
>  
>  	{"b LINE2R", NULL, "MONO_LOUT"},
>  	{"Earphone", NULL, "b HPLOUT"},
>  
> -	{"LINE1L", NULL, "b Mic Bias"},
> -	{"b Mic Bias", NULL, "HS Mic"}
> +	{"LINE1L", NULL, "HS Mic"},
> +	{"HS Mic", NULL, "b Mic Bias"},
>  };
>  
Here's additional data. Without this patch there are these errors below
when registering the card:

[    8.804626] rx51-audio n900-audio: Connecting non-supply widget to
supply widget is not supported (DMic -> Mic Bias)
[    8.815795] rx51-audio n900-audio: ASoC: no dapm match for DMic -->
(null) --> Mic Bias
[    8.824249] rx51-audio n900-audio: ASoC: Failed to add route DMic ->
direct -> Mic Bias
[    8.832763] rx51-audio n900-audio: Connecting non-supply widget to
supply widget is not supported (HS Mic -> b Mic Bias)
[    8.844238] rx51-audio n900-audio: ASoC: no dapm match for HS Mic -->
(null) --> b Mic Bias
[    8.853057] rx51-audio n900-audio: ASoC: Failed to add route HS Mic
-> direct -> b Mic Bias

This don't happen on v3.18 so in that sense Peter's patch is kind of
half-regression fix for v3.19. On the another hand DMIC recording is not
working anyway since codec mic bias definition is missing at the moment
from omap3-n900.dts.

Tested-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com>
Lars-Peter Clausen Feb. 2, 2015, 5:13 p.m. UTC | #2
On 01/30/2015 07:32 PM, Jarkko Nikula wrote:
[...]
> Here's additional data. Without this patch there are these errors below
> when registering the card:
>
> [    8.804626] rx51-audio n900-audio: Connecting non-supply widget to
> supply widget is not supported (DMic -> Mic Bias)
> [    8.815795] rx51-audio n900-audio: ASoC: no dapm match for DMic -->
> (null) --> Mic Bias
> [    8.824249] rx51-audio n900-audio: ASoC: Failed to add route DMic ->
> direct -> Mic Bias
> [    8.832763] rx51-audio n900-audio: Connecting non-supply widget to
> supply widget is not supported (HS Mic -> b Mic Bias)
> [    8.844238] rx51-audio n900-audio: ASoC: no dapm match for HS Mic -->
> (null) --> b Mic Bias
> [    8.853057] rx51-audio n900-audio: ASoC: Failed to add route HS Mic
> -> direct -> b Mic Bias
>
> This don't happen on v3.18 so in that sense Peter's patch is kind of
> half-regression fix for v3.19.

What's new in v3.19 is that the kernel will shout if it encounters such a 
invalid route, previously it was just silently ignored. But either way it 
never actually worked, so it's not really a v3.19 regression.

- Lars
Jarkko Nikula Feb. 2, 2015, 7:29 p.m. UTC | #3
On 02/02/2015 07:13 PM, Lars-Peter Clausen wrote:
> On 01/30/2015 07:32 PM, Jarkko Nikula wrote:
> [...]
>> Here's additional data. Without this patch there are these errors below
>> when registering the card:
>>
>> [    8.804626] rx51-audio n900-audio: Connecting non-supply widget to
>> supply widget is not supported (DMic -> Mic Bias)
>> [    8.815795] rx51-audio n900-audio: ASoC: no dapm match for DMic -->
>> (null) --> Mic Bias
>> [    8.824249] rx51-audio n900-audio: ASoC: Failed to add route DMic ->
>> direct -> Mic Bias
>> [    8.832763] rx51-audio n900-audio: Connecting non-supply widget to
>> supply widget is not supported (HS Mic -> b Mic Bias)
>> [    8.844238] rx51-audio n900-audio: ASoC: no dapm match for HS Mic -->
>> (null) --> b Mic Bias
>> [    8.853057] rx51-audio n900-audio: ASoC: Failed to add route HS Mic
>> -> direct -> b Mic Bias
>>
>> This don't happen on v3.18 so in that sense Peter's patch is kind of
>> half-regression fix for v3.19.
> 
> What's new in v3.19 is that the kernel will shout if it encounters such
> a invalid route, previously it was just silently ignored. But either way
> it never actually worked, so it's not really a v3.19 regression.
> 
It used to work in the past, not sure about 3.18 since I didn't actually
test recording due missing mic bias from DT data (i.e. recording has
been actually broken quite many releases) but looks like your
e409dfbfccf9 ("ASoC: dapm: Add a few supply widget sanity checks") made
it visible. Fortunately Peter saw it from sources even without above
report. Good to have active users that report issues :-)
diff mbox

Patch

diff --git a/sound/soc/omap/rx51.c b/sound/soc/omap/rx51.c
index 04896d6252a2..7f299357c2d2 100644
--- a/sound/soc/omap/rx51.c
+++ b/sound/soc/omap/rx51.c
@@ -250,14 +250,14 @@  static const struct snd_soc_dapm_route audio_map[] = {
 	{"FM Transmitter", NULL, "LLOUT"},
 	{"FM Transmitter", NULL, "RLOUT"},
 
-	{"DMic Rate 64", NULL, "Mic Bias"},
-	{"Mic Bias", NULL, "DMic"},
+	{"DMic Rate 64", NULL, "DMic"},
+	{"DMic", NULL, "Mic Bias"},
 
 	{"b LINE2R", NULL, "MONO_LOUT"},
 	{"Earphone", NULL, "b HPLOUT"},
 
-	{"LINE1L", NULL, "b Mic Bias"},
-	{"b Mic Bias", NULL, "HS Mic"}
+	{"LINE1L", NULL, "HS Mic"},
+	{"HS Mic", NULL, "b Mic Bias"},
 };
 
 static const char * const spk_function[] = {"Off", "On"};