[alsa-devel] [PATCH] ASoC: sam9g20_wm8731: Convert to table based DAPM setup

Bo Shen voice.shen at atmel.com
Mon Mar 10 04:42:29 CET 2014


Hi Lars,

On 03/08/2014 10:47 PM, Lars-Peter Clausen wrote:
> 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 at metafoo.de>
> ---
>   sound/soc/atmel/sam9g20_wm8731.c | 20 +++++++-------------
>   1 file changed, 7 insertions(+), 13 deletions(-)

Thanks for your work.
Tested OK on sam9g20ek board with dt and non-dt kernel.

Tested-by: Bo Shen <voice.shen at atmel.com>
Acked-by: Bo Shen <voice.shen at atmel.com>

> diff --git a/sound/soc/atmel/sam9g20_wm8731.c b/sound/soc/atmel/sam9g20_wm8731.c
> index f15bff1..174bd54 100644
> --- a/sound/soc/atmel/sam9g20_wm8731.c
> +++ b/sound/soc/atmel/sam9g20_wm8731.c
> @@ -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)
>

Best Regards,
Bo Shen



More information about the Alsa-devel mailing list