diff mbox

[3/4] ASoC: sgtl5000: remove unneeded snd_soc_dapm_new_widgets in probe

Message ID 1342776027-31758-4-git-send-email-b29396@freescale.com (mailing list archive)
State New, archived
Headers show

Commit Message

Aisheng Dong July 20, 2012, 9:20 a.m. UTC
From: Dong Aisheng <dong.aisheng@linaro.org>

There's a driver bug that sgtl5000 dapm widget kcontrols do not work.
e.g. can not select capture mux with amixer tool(no error info prompted).

The root cause is that we still call snd_soc_dapm_new_widgets in
codec driver probe function afer converting to table based widgets.
This will cause the card dapm widgets are instantiated before the
dapm_routes are registered.
Then, no available dapm widget pathes can be found during instantiation
which finally will cause soc_dapm_mux_update_power to fail(can not find
correct path with kcontrol) in snd_soc_dapm_put_enum_double function.

Here we remove the unneeded snd_soc_dapm_new_widgets in codec probe
and let the soc core to handle the register sequence properly.
Then we can fix above issue.

Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Liam Girdwood <lrg@ti.com>
Cc: Wolfram Sang <w.sang@pengutronix.de>
Cc: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org>
---
 sound/soc/codecs/sgtl5000.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

Comments

Shawn Guo July 21, 2012, 8:37 a.m. UTC | #1
On Fri, Jul 20, 2012 at 05:20:26PM +0800, Dong Aisheng wrote:
> From: Dong Aisheng <dong.aisheng@linaro.org>
> 
> There's a driver bug that sgtl5000 dapm widget kcontrols do not work.
> e.g. can not select capture mux with amixer tool(no error info prompted).
> 
> The root cause is that we still call snd_soc_dapm_new_widgets in
> codec driver probe function afer converting to table based widgets.
> This will cause the card dapm widgets are instantiated before the
> dapm_routes are registered.
> Then, no available dapm widget pathes can be found during instantiation
> which finally will cause soc_dapm_mux_update_power to fail(can not find
> correct path with kcontrol) in snd_soc_dapm_put_enum_double function.
> 
> Here we remove the unneeded snd_soc_dapm_new_widgets in codec probe
> and let the soc core to handle the register sequence properly.
> Then we can fix above issue.
> 
> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
> Cc: Liam Girdwood <lrg@ti.com>
> Cc: Wolfram Sang <w.sang@pengutronix.de>
> Cc: Shawn Guo <shawn.guo@linaro.org>

On imx53-qsb board:

Tested-by: Shawn Guo <shawn.guo@linaro.org>
Mark Brown July 24, 2012, 7:20 p.m. UTC | #2
On Fri, Jul 20, 2012 at 05:20:26PM +0800, Dong Aisheng wrote:
> From: Dong Aisheng <dong.aisheng@linaro.org>
> 
> There's a driver bug that sgtl5000 dapm widget kcontrols do not work.
> e.g. can not select capture mux with amixer tool(no error info prompted).

Applied, thanks.
diff mbox

Patch

diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
index 8af6a52..5c54b6f 100644
--- a/sound/soc/codecs/sgtl5000.c
+++ b/sound/soc/codecs/sgtl5000.c
@@ -1357,8 +1357,6 @@  static int sgtl5000_probe(struct snd_soc_codec *codec)
 	if (ret)
 		goto err;
 
-	snd_soc_dapm_new_widgets(&codec->dapm);
-
 	return 0;
 
 err: