summaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2009-06-14 12:33:37 +0200
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-06-14 17:14:53 +0200
commit6d5701b29e392f77d222254aa8e375315d59f0aa (patch)
treef5552372d806219450f5fc4086b5c55f4e1db8ee /sound/soc
parentASoC: Revert duplicated code in SSM2602 driver (diff)
downloadlinux-6d5701b29e392f77d222254aa8e375315d59f0aa.tar.xz
linux-6d5701b29e392f77d222254aa8e375315d59f0aa.zip
ASoC: Instantiate any forgotten DAPM widgets
With the recent changes to the DAPM power checks it has become important to explicitly instantiate all widgets but some drivers were forgetting to do that. Since everything needs to do it add a call to instantiate them immediately before the card registration - it does no harm when it is called repeatedly and saves work in drivers. Tested-by: pHilipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/soc-core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 3f44150d8e30..1d70829464ef 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1389,6 +1389,9 @@ int snd_soc_init_card(struct snd_soc_device *socdev)
snprintf(codec->card->longname, sizeof(codec->card->longname),
"%s (%s)", card->name, codec->name);
+ /* Make sure all DAPM widgets are instantiated */
+ snd_soc_dapm_new_widgets(codec);
+
ret = snd_card_register(codec->card);
if (ret < 0) {
printk(KERN_ERR "asoc: failed to register soundcard for %s\n",