[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