ASoC: sam9g20_wm8731: Convert to table based DAPM setup
authorLars-Peter Clausen <lars@metafoo.de>
Sat, 8 Mar 2014 14:47:22 +0000 (15:47 +0100)
committerMark Brown <broonie@linaro.org>
Mon, 10 Mar 2014 10:31:43 +0000 (10:31 +0000)
Use table based setup to register the DAPM widgets and routes. This on one hand
makes the code a bit shorter and cleaner and on the other hand the board level
DAPM elements get registered in the card's DAPM context rather than in the
CODEC's DAPM context.

While we are at it also remove the snd_soc_dapm_enable_pin() in the init
callback. Pins are enabled by default.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Tested-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Bo Shen <voice.shen@atmel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/atmel/sam9g20_wm8731.c

index f15bff1548f8fceb86c3f466201aab13107d9816..174bd546c08b0814bf45a999b307aa9b67e69ad4 100644 (file)
@@ -155,25 +155,14 @@ static int at91sam9g20ek_wm8731_init(struct snd_soc_pcm_runtime *rtd)
                return ret;
        }
 
-       /* Add specific widgets */
-       snd_soc_dapm_new_controls(dapm, at91sam9g20ek_dapm_widgets,
-                                 ARRAY_SIZE(at91sam9g20ek_dapm_widgets));
-       /* Set up specific audio path interconnects */
-       snd_soc_dapm_add_routes(dapm, intercon, ARRAY_SIZE(intercon));
-
        /* not connected */
        snd_soc_dapm_nc_pin(dapm, "RLINEIN");
        snd_soc_dapm_nc_pin(dapm, "LLINEIN");
 
-#ifdef ENABLE_MIC_INPUT
-       snd_soc_dapm_enable_pin(dapm, "Int Mic");
-#else
-       snd_soc_dapm_nc_pin(dapm, "Int Mic");
+#ifndef ENABLE_MIC_INPUT
+       snd_soc_dapm_nc_pin(&rtd->card->dapm, "Int Mic");
 #endif
 
-       /* always connected */
-       snd_soc_dapm_enable_pin(dapm, "Ext Spk");
-
        return 0;
 }
 
@@ -194,6 +183,11 @@ static struct snd_soc_card snd_soc_at91sam9g20ek = {
        .dai_link = &at91sam9g20ek_dai,
        .num_links = 1,
        .set_bias_level = at91sam9g20ek_set_bias_level,
+
+       .dapm_widgets = at91sam9g20ek_dapm_widgets,
+       .num_dapm_widgets = ARRAY_SIZE(at91sam9g20ek_dapm_widgets),
+       .dapm_routes = intercon,
+       .num_dapm_routes = ARRAY_SIZE(intercon),
 };
 
 static int at91sam9g20ek_audio_probe(struct platform_device *pdev)