[alsa-devel] [PATCH] Dmux mixer conflict

Matthew Ranostay mranostay at embeddedalley.com
Wed Dec 19 15:07:56 CET 2007


Takashi Iwai wrote:
> At Tue, 18 Dec 2007 17:40:05 -0500,
> Matthew Ranostay wrote:
>   
>> DMUX mixers need to be created before input source mixers, otherwise 
>> some STAC9228 codecs fail to record correctly or at all.
>>
>> ---
>> Signed-off-by: Matthew Ranostay <mranostay at embeddedalley.com>
>>     
>
> The fix looks doubtful.  The order of mixer elements should be
> irrelevant with the functionality.
>
> I suspect it might be the result of failure of 'alsactl restore'.
> Some distros don't call alsactl properly with -F option.
> (This option is set default in the latest HG version now.)
>
>
> Takashi
>
>   
>> diff -r fbe3540c8df4 pci/hda/patch_sigmatel.c
>> --- a/pci/hda/patch_sigmatel.c	Tue Dec 18 18:05:52 2007 +0100
>> +++ b/pci/hda/patch_sigmatel.c	Tue Dec 18 15:27:34 2007 -0700
>> @@ -834,15 +834,16 @@ static int stac92xx_build_controls(struc
>>  	if (err < 0)
>>  		return err;
>>  
>> -	for (i = 0; i < spec->num_mixers; i++) {
>> -		err = snd_hda_add_new_ctls(codec, spec->mixers[i]);
>> -		if (err < 0)
>> -			return err;
>> -	}
>>  	if (spec->num_dmuxes > 0) {
>>  		stac_dmux_mixer.count = spec->num_dmuxes;
>>  		err = snd_ctl_add(codec->bus->card,
>>  				  snd_ctl_new1(&stac_dmux_mixer, codec));
>> +		if (err < 0)
>> +			return err;
>> +	}
>> +
>> +	for (i = 0; i < spec->num_mixers; i++) {
>> +		err = snd_hda_add_new_ctls(codec, spec->mixers[i]);
>>  		if (err < 0)
>>  			return err;
>>  	}
>>     
>
>   
Ok thanks, I tried that and now it works as before.

-Matt Ranostay


More information about the Alsa-devel mailing list