Re: [PATCH] hda: default dmuxes to first entry in dinput_mux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Mon, 19 Jan 2009 22:41:56 -0500,
Matthew Ranostay wrote:
> 
> When using a custom spec->dinput_mux sometimes the value selected is
> incorrect due to not have a previously selected default. To remedy this
> patch selects the first items index in spec->dinput_mux and sets all the
> dmuxes thusly to it. 

Shouldn't we initialize the item selection even for the BIOS dinput_mux?
(Who can trust BIOS setup? ;)


thanks,

Takashi

> 
> Signed-off-by: Matthew Ranostay <mranostay@xxxxxxxxxxxxxxxxx>
> ---
> 
> diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
> index e2b673a..3f5dc1b 100644
> --- a/sound/pci/hda/patch_sigmatel.c
> +++ b/sound/pci/hda/patch_sigmatel.c
> @@ -3663,7 +3663,17 @@ static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out
>  		spec->mixers[spec->num_mixers++] = spec->kctls.list;
>  
>  	spec->input_mux = &spec->private_imux;
> -	if (!spec->dinput_mux)
> +	if (spec->dinput_mux) {
> +		int idx = spec->dinput_mux->items[0].index;
> +		int i;
> +
> +		/* sometimes using a custom dinput_mux causes the incorrect
> + 		 * value to selected on startup, but sure a valid one is
> + 		 * selected by default */
> +		for (i = 0; i < spec->num_dmuxes; i++)
> +			snd_hda_codec_write_cache(codec, spec->dmux_nids[i], 0,
> +				 AC_VERB_SET_CONNECT_SEL, idx);
> +	} else
>  		spec->dinput_mux = &spec->private_dimux;
>  	spec->sinput_mux = &spec->private_smux;
>  	spec->mono_mux = &spec->private_mono_mux;
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux