ASoC: Instantiate DAPM widgets before we do the DAI link init
Mark Brown [Wed, 28 Sep 2011 19:12:01 +0000 (20:12 +0100)]
The DAI init function may want to do something that needs the widgets to
be instantiated.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

sound/soc/soc-core.c

index a58c1fc..1ed8093 100644 (file)
@@ -1059,6 +1059,9 @@ static int soc_post_component_init(struct snd_soc_card *card,
        temp = codec->name_prefix;
        codec->name_prefix = NULL;
 
+       /* Make sure all DAPM widgets are instantiated */
+       snd_soc_dapm_new_widgets(&codec->dapm);
+
        /* do machine specific initialization */
        if (!dailess && dai_link->init)
                ret = dai_link->init(rtd);
@@ -1070,9 +1073,6 @@ static int soc_post_component_init(struct snd_soc_card *card,
        }
        codec->name_prefix = temp;
 
-       /* Make sure all DAPM widgets are instantiated */
-       snd_soc_dapm_new_widgets(&codec->dapm);
-
        /* register the rtd device */
        rtd->codec = codec;
        rtd->dev.parent = card->dev;