[alsa-devel] [PATCH 01/12] ASoC: Create codec DAPM widgets before calling the codecs probe function

Liam Girdwood lrg at slimlogic.co.uk
Sat May 7 20:11:00 CEST 2011


On Thu, 2011-05-05 at 16:59 +0200, Lars-Peter Clausen wrote:
> This allows to create DAPM routes depending on those widgets in the codecs probe
> function.
> This is helpful when supporting similar codecs with minor differences in the DAPM
> routing with the same driver.
> 
> Something similar has already been done for cards in commit a841ebb9(ASoC: Create
> card DAPM widgets early so they can be used in callbacks)
> 
> Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>

These look all OK but I'm not fully following your commit message above
with moving the call to snd_soc_dapm_new_controls() below. Could you
explain why moving the call fixes your issue.

> ---
>  sound/soc/soc-core.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 133edeb..a477e21 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -1495,6 +1495,10 @@ static int soc_probe_codec(struct snd_soc_card *card,
>  
>  	soc_init_codec_debugfs(codec);
>  
> +	if (driver->dapm_widgets)
> +		snd_soc_dapm_new_controls(&codec->dapm, driver->dapm_widgets,
> +					  driver->num_dapm_widgets);
> +
>  	if (driver->probe) {
>  		ret = driver->probe(codec);
>  		if (ret < 0) {
> @@ -1508,9 +1512,6 @@ static int soc_probe_codec(struct snd_soc_card *card,
>  	if (driver->controls)
>  		snd_soc_add_controls(codec, driver->controls,
>  				     driver->num_controls);
> -	if (driver->dapm_widgets)
> -		snd_soc_dapm_new_controls(&codec->dapm, driver->dapm_widgets,
> -					  driver->num_dapm_widgets);
>  	if (driver->dapm_routes)
>  		snd_soc_dapm_add_routes(&codec->dapm, driver->dapm_routes,
>  					driver->num_dapm_routes);




More information about the Alsa-devel mailing list