ASoC: pxa: mioa701_wm9713: Convert to table based DAPM setup
authorLars-Peter Clausen <lars@metafoo.de>
Sat, 1 Mar 2014 14:48:18 +0000 (15:48 +0100)
committerMark Brown <broonie@linaro.org>
Mon, 3 Mar 2014 02:01:48 +0000 (11:01 +0900)
Use table based setup to register the DAPM widgets and routes. This on one hand
makes the code a bit 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.

Also remove the snd_soc_dapm_enable_pin() calls, since pins are enabled by
default and there are no matching snd_soc_dapm_disable_pin() calls.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/pxa/mioa701_wm9713.c

index 160c524..595eee3 100644 (file)
@@ -127,16 +127,8 @@ static const struct snd_soc_dapm_route audio_map[] = {
 static int mioa701_wm9713_init(struct snd_soc_pcm_runtime *rtd)
 {
        struct snd_soc_codec *codec = rtd->codec;
-       struct snd_soc_dapm_context *dapm = &codec->dapm;
        unsigned short reg;
 
-       /* Add mioa701 specific widgets */
-       snd_soc_dapm_new_controls(dapm, mioa701_dapm_widgets,
-                                 ARRAY_SIZE(mioa701_dapm_widgets));
-
-       /* Set up mioa701 specific audio path audio_mapnects */
-       snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map));
-
        /* Prepare GPIO8 for rear speaker amplifier */
        reg = codec->driver->read(codec, AC97_GPIO_CFG);
        codec->driver->write(codec, AC97_GPIO_CFG, reg | 0x0100);
@@ -145,12 +137,6 @@ static int mioa701_wm9713_init(struct snd_soc_pcm_runtime *rtd)
        reg = codec->driver->read(codec, AC97_3D_CONTROL);
        codec->driver->write(codec, AC97_3D_CONTROL, reg | 0xc000);
 
-       snd_soc_dapm_enable_pin(dapm, "Front Speaker");
-       snd_soc_dapm_enable_pin(dapm, "Rear Speaker");
-       snd_soc_dapm_enable_pin(dapm, "Front Mic");
-       snd_soc_dapm_enable_pin(dapm, "GSM Line In");
-       snd_soc_dapm_enable_pin(dapm, "GSM Line Out");
-
        return 0;
 }
 
@@ -183,6 +169,11 @@ static struct snd_soc_card mioa701 = {
        .owner = THIS_MODULE,
        .dai_link = mioa701_dai,
        .num_links = ARRAY_SIZE(mioa701_dai),
+
+       .dapm_widgets = mioa701_dapm_widgets,
+       .num_dapm_widgets = ARRAY_SIZE(mioa701_dapm_widgets),
+       .dapm_routes = audio_map,
+       .num_dapm_routes = ARRAY_SIZE(audio_map),
 };
 
 static int mioa701_wm9713_probe(struct platform_device *pdev)