]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
ASoC: Create codec DAPM widgets before calling the codecs probe function
authorLars-Peter Clausen <lars@metafoo.de>
Thu, 5 May 2011 14:59:09 +0000 (16:59 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sun, 8 May 2011 13:38:08 +0000 (14:38 +0100)
This allows to create DAPM routes depending on those widgets in the
codecs probe function.  This is helpful when supporting similar codecs
with minor differences in the DAPM routing with the same driver.

Something similar has already been done for cards in commit
a841ebb9 (ASoC: Create card DAPM widgets early so they can be used in
callbacks).

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/soc-core.c

index 133edeb9728ad6817cc3768eca562f22852fac37..a477e218aa282a842b55ab48a076502a96881847 100644 (file)
@@ -1495,6 +1495,10 @@ static int soc_probe_codec(struct snd_soc_card *card,
 
        soc_init_codec_debugfs(codec);
 
+       if (driver->dapm_widgets)
+               snd_soc_dapm_new_controls(&codec->dapm, driver->dapm_widgets,
+                                         driver->num_dapm_widgets);
+
        if (driver->probe) {
                ret = driver->probe(codec);
                if (ret < 0) {
@@ -1508,9 +1512,6 @@ static int soc_probe_codec(struct snd_soc_card *card,
        if (driver->controls)
                snd_soc_add_controls(codec, driver->controls,
                                     driver->num_controls);
-       if (driver->dapm_widgets)
-               snd_soc_dapm_new_controls(&codec->dapm, driver->dapm_widgets,
-                                         driver->num_dapm_widgets);
        if (driver->dapm_routes)
                snd_soc_dapm_add_routes(&codec->dapm, driver->dapm_routes,
                                        driver->num_dapm_routes);