[alsa-devel] [PATCH] hda: add 2-channel mode to Intel ALC889/ALC889A models

Takashi Iwai tiwai at suse.de
Thu Jul 30 08:54:54 CEST 2009


At Thu, 30 Jul 2009 14:36:35 +0800,
Wu Fengguang wrote:
> 
> This 2-channel mode is useful in that it will broadcast
> a 2-channel audio stream to all front/side/... ports.
> 
> Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>

Applied now.  Thanks!


Takashi

> ---
>  sound/pci/hda/patch_realtek.c |   44 ++++++++++++++++++--------------
>  1 file changed, 25 insertions(+), 19 deletions(-)
> 
> --- sound-2.6.orig/sound/pci/hda/patch_realtek.c
> +++ sound-2.6/sound/pci/hda/patch_realtek.c
> @@ -6682,18 +6682,27 @@ static struct hda_channel_mode alc883_3S
>  };
>  
>  /*
> + * 2ch mode
> + */
> +static struct hda_verb alc889_ch2_intel_init[] = {
> +	{ 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 },
> +	{ 0x19, AC_VERB_SET_CONNECT_SEL, 0x00 },
> +	{ 0x16, AC_VERB_SET_CONNECT_SEL, 0x00 },
> +	{ 0x17, AC_VERB_SET_CONNECT_SEL, 0x00 },
> +	{ 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
> +	{ 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
> +	{ } /* end */
> +};
> +
> +/*
>   * 6ch mode
>   */
>  static struct hda_verb alc889_ch6_intel_init[] = {
> -	{ 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
> -	{ 0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> -	{ 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
> -	{ 0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> -	{ 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
> -	{ 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> -	{ 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
> -	{ 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> -	{ 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 },
> +	{ 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 },
> +	{ 0x19, AC_VERB_SET_CONNECT_SEL, 0x01 },
> +	{ 0x16, AC_VERB_SET_CONNECT_SEL, 0x02 },
> +	{ 0x17, AC_VERB_SET_CONNECT_SEL, 0x03 },
> +	{ 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
>  	{ 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
>  	{ } /* end */
>  };
> @@ -6702,21 +6711,18 @@ static struct hda_verb alc889_ch6_intel_
>   * 8ch mode
>   */
>  static struct hda_verb alc889_ch8_intel_init[] = {
> -	{ 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
> -	{ 0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> -	{ 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
> -	{ 0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> -	{ 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
> -	{ 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> -	{ 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
> -	{ 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> +	{ 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 },
> +	{ 0x19, AC_VERB_SET_CONNECT_SEL, 0x01 },
> +	{ 0x16, AC_VERB_SET_CONNECT_SEL, 0x02 },
> +	{ 0x17, AC_VERB_SET_CONNECT_SEL, 0x03 },
> +	{ 0x1a, AC_VERB_SET_CONNECT_SEL, 0x03 },
>  	{ 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
>  	{ 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
> -	{ 0x1a, AC_VERB_SET_CONNECT_SEL, 0x03 },
>  	{ } /* end */
>  };
>  
> -static struct hda_channel_mode alc889_8ch_intel_modes[2] = {
> +static struct hda_channel_mode alc889_8ch_intel_modes[3] = {
> +	{ 2, alc889_ch2_intel_init },
>  	{ 6, alc889_ch6_intel_init },
>  	{ 8, alc889_ch8_intel_init },
>  };
> 


More information about the Alsa-devel mailing list