[alsa-devel] [PATCH v2 07/12] ASoC: davinci-evm: Register machine level DAPM elements with the card

Peter Ujfalusi peter.ujfalusi at ti.com
Thu Mar 13 11:07:41 CET 2014


On 03/12/2014 04:27 PM, Lars-Peter Clausen wrote:
> 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 at metafoo.de>

Acked-by: Peter Ujfalusi <peter.ujfalusi at ti.com>

> ---
> Changes since v1:
> 	* Remove snd_soc_dapm_enable_pin() calls
> 	* Change snd_soc_dapm_disable_pin() calles into snd_soc_dapm_nc_pin()
> ---
>  sound/soc/davinci/davinci-evm.c | 22 ++++++++--------------
>  1 file changed, 8 insertions(+), 14 deletions(-)
> 
> diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
> index 70ff377..9c296f7 100644
> --- a/sound/soc/davinci/davinci-evm.c
> +++ b/sound/soc/davinci/davinci-evm.c
> @@ -95,35 +95,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;
>  }
> 


-- 
Péter


More information about the Alsa-devel mailing list