ASoC: Instantiate DAPM widgets before we do the DAI link init
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 28 Sep 2011 19:12:01 +0000 (20:12 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 3 Oct 2011 20:34:56 +0000 (21:34 +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 a58c1fc966eb69d44762c83e0f5a6936082bf071..1ed8093b44e8386e111cae4dae81b96ff1efd21a 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;