[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