Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d343a660 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Mark Brown
Browse files

ASoC: davinci-evm: Register machine level DAPM elements with the card



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: default avatarLars-Peter Clausen <lars@metafoo.de>
Acked-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 64ebdec3
Loading
Loading
Loading
Loading
+8 −14
Original line number Original line Diff line number Diff line
@@ -123,35 +123,29 @@ static const struct snd_soc_dapm_route audio_map[] = {
/* Logic for a aic3x as connected on a davinci-evm */
/* Logic for a aic3x as connected on a davinci-evm */
static int evm_aic3x_init(struct snd_soc_pcm_runtime *rtd)
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_codec *codec = rtd->codec;
	struct snd_soc_dapm_context *dapm = &codec->dapm;
	struct device_node *np = codec->card->dev->of_node;
	struct device_node *np = codec->card->dev->of_node;
	int ret;
	int ret;


	/* Add davinci-evm specific widgets */
	/* 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));
				  ARRAY_SIZE(aic3x_dapm_widgets));


	if (np) {
	if (np) {
		ret = snd_soc_of_parse_audio_routing(codec->card,
		ret = snd_soc_of_parse_audio_routing(card, "ti,audio-routing");
							"ti,audio-routing");
		if (ret)
		if (ret)
			return ret;
			return ret;
	} else {
	} else {
		/* Set up davinci-evm specific audio path audio_map */
		/* 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 */
	/* not connected */
	snd_soc_dapm_disable_pin(dapm, "MONO_LOUT");
	snd_soc_dapm_nc_pin(&codec->dapm, "MONO_LOUT");
	snd_soc_dapm_disable_pin(dapm, "HPLCOM");
	snd_soc_dapm_nc_pin(&codec->dapm, "HPLCOM");
	snd_soc_dapm_disable_pin(dapm, "HPRCOM");
	snd_soc_dapm_nc_pin(&codec->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");


	return 0;
	return 0;
}
}