ASoC: davinci-evm: Register machine level DAPM elements with the card
authorLars-Peter Clausen <lars@metafoo.de>
Wed, 12 Mar 2014 14:27:35 +0000 (15:27 +0100)
committerMark Brown <broonie@linaro.org>
Thu, 13 Mar 2014 19:11:19 +0000 (19:11 +0000)
Machine level DAPM widgets and routes should be registered in the card's DAPM
context, rather than in the CODEC's context.

While we are at it also drop the snd_soc_dapm_enable_pin() calls, since pins are
enabled by default and also turn the snd_soc_dapm_disable_pin() calls into
snd_soc_dapm_nc_pin() calls for unconnected pins.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/davinci/davinci-evm.c

index 621e9a997d4c015bebeeb7d1a39a751941815dc0..cab98a580053bd9978e2ba8317583654fe09cf74 100644 (file)
@@ -123,35 +123,29 @@ static const struct snd_soc_dapm_route audio_map[] = {
 /* Logic for a aic3x as connected on a davinci-evm */
 static int evm_aic3x_init(struct snd_soc_pcm_runtime *rtd)
 {
+       struct snd_soc_card *card = rtd->card;
        struct snd_soc_codec *codec = rtd->codec;
-       struct snd_soc_dapm_context *dapm = &codec->dapm;
        struct device_node *np = codec->card->dev->of_node;
        int ret;
 
        /* Add davinci-evm specific widgets */
-       snd_soc_dapm_new_controls(dapm, aic3x_dapm_widgets,
+       snd_soc_dapm_new_controls(&card->dapm, aic3x_dapm_widgets,
                                  ARRAY_SIZE(aic3x_dapm_widgets));
 
        if (np) {
-               ret = snd_soc_of_parse_audio_routing(codec->card,
-                                                       "ti,audio-routing");
+               ret = snd_soc_of_parse_audio_routing(card, "ti,audio-routing");
                if (ret)
                        return ret;
        } else {
                /* Set up davinci-evm specific audio path audio_map */
-               snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map));
+               snd_soc_dapm_add_routes(&card->dapm, audio_map,
+                                       ARRAY_SIZE(audio_map));
        }
 
        /* not connected */
-       snd_soc_dapm_disable_pin(dapm, "MONO_LOUT");
-       snd_soc_dapm_disable_pin(dapm, "HPLCOM");
-       snd_soc_dapm_disable_pin(dapm, "HPRCOM");
-
-       /* always connected */
-       snd_soc_dapm_enable_pin(dapm, "Headphone Jack");
-       snd_soc_dapm_enable_pin(dapm, "Line Out");
-       snd_soc_dapm_enable_pin(dapm, "Mic Jack");
-       snd_soc_dapm_enable_pin(dapm, "Line In");
+       snd_soc_dapm_nc_pin(&codec->dapm, "MONO_LOUT");
+       snd_soc_dapm_nc_pin(&codec->dapm, "HPLCOM");
+       snd_soc_dapm_nc_pin(&codec->dapm, "HPRCOM");
 
        return 0;
 }