[alsa-devel] [PATCH 2.6.37 1/2] ASoC: Fix dapm_seq_compare() for multi-component

Jarkko Nikula jhnikula at gmail.com
Fri Nov 12 20:06:37 CET 2010


On Fri, 12 Nov 2010 16:01:10 +0000
Mark Brown <broonie at opensource.wolfsonmicro.com> wrote:

> Ensure that we keep all widget powerups in DAPM sequence by making
> the CODEC the last thing we compare on rather than the first thing.
> Also fix the fact that we're currently comparing the widget pointers
> rather than the CODEC pointers when we do the substraction so we
> won't get stable results.
> 
> Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
> ---
>  sound/soc/soc-dapm.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
> index 8352430..bc2ec06 100644
> --- a/sound/soc/soc-dapm.c
> +++ b/sound/soc/soc-dapm.c
> @@ -706,12 +706,12 @@ static int dapm_seq_compare(struct snd_soc_dapm_widget *a,
>  			    struct snd_soc_dapm_widget *b,
>  			    int sort[])
>  {
> -	if (a->codec != b->codec)
> -		return (unsigned long)a - (unsigned long)b;
>  	if (sort[a->id] != sort[b->id])
>  		return sort[a->id] - sort[b->id];
>  	if (a->reg != b->reg)
>  		return a->reg - b->reg;
> +	if (a->codec != b->codec)
> +		return (unsigned long)a->codec - (unsigned long)b->codec;
>  
This sounds feasible change. What I was thinking are there any
benefit which one, the register or codec is compared first but I don't
think there's any practical difference.

A1, B1, A2, B2 (now)
or
A1, A2, B1, B2 (codec comparison before register)

Acked-by: Jarkko Nikula <jhnikula at gmail.com>


More information about the Alsa-devel mailing list