aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
authorWu Fengguang <fengguang.wu@intel.com>2009-07-30 02:36:35 -0400
committerTakashi Iwai <tiwai@suse.de>2009-07-30 02:53:56 -0400
commitdd7714c92248943b778e8199c7dec7ef859dcac2 (patch)
tree1ae086d1a14ee4b59486198f609122cc26f80c61 /sound/pci/hda/patch_realtek.c
parent71443b0b745f7d2c775c8a228e09ef2dc98d42f3 (diff)
ALSA: hda: add 2-channel mode to Intel ALC889/ALC889A models
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@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c44
1 files changed, 25 insertions, 19 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 6794d028119d..8c5d342bd4eb 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6681,18 +6681,27 @@ static struct hda_channel_mode alc883_3ST_6ch_intel_modes[3] = {
6681}; 6681};
6682 6682
6683/* 6683/*
6684 * 2ch mode
6685 */
6686static struct hda_verb alc889_ch2_intel_init[] = {
6687 { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 },
6688 { 0x19, AC_VERB_SET_CONNECT_SEL, 0x00 },
6689 { 0x16, AC_VERB_SET_CONNECT_SEL, 0x00 },
6690 { 0x17, AC_VERB_SET_CONNECT_SEL, 0x00 },
6691 { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
6692 { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
6693 { } /* end */
6694};
6695
6696/*
6684 * 6ch mode 6697 * 6ch mode
6685 */ 6698 */
6686static struct hda_verb alc889_ch6_intel_init[] = { 6699static struct hda_verb alc889_ch6_intel_init[] = {
6687 { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, 6700 { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 },
6688 { 0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, 6701 { 0x19, AC_VERB_SET_CONNECT_SEL, 0x01 },
6689 { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, 6702 { 0x16, AC_VERB_SET_CONNECT_SEL, 0x02 },
6690 { 0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, 6703 { 0x17, AC_VERB_SET_CONNECT_SEL, 0x03 },
6691 { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, 6704 { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN },
6692 { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
6693 { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
6694 { 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
6695 { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 },
6696 { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE }, 6705 { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE },
6697 { } /* end */ 6706 { } /* end */
6698}; 6707};
@@ -6701,21 +6710,18 @@ static struct hda_verb alc889_ch6_intel_init[] = {
6701 * 8ch mode 6710 * 8ch mode
6702 */ 6711 */
6703static struct hda_verb alc889_ch8_intel_init[] = { 6712static struct hda_verb alc889_ch8_intel_init[] = {
6704 { 0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, 6713 { 0x14, AC_VERB_SET_CONNECT_SEL, 0x00 },
6705 { 0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, 6714 { 0x19, AC_VERB_SET_CONNECT_SEL, 0x01 },
6706 { 0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, 6715 { 0x16, AC_VERB_SET_CONNECT_SEL, 0x02 },
6707 { 0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, 6716 { 0x17, AC_VERB_SET_CONNECT_SEL, 0x03 },
6708 { 0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, 6717 { 0x1a, AC_VERB_SET_CONNECT_SEL, 0x03 },
6709 { 0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
6710 { 0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
6711 { 0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
6712 { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, 6718 { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },
6713 { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, 6719 { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE },
6714 { 0x1a, AC_VERB_SET_CONNECT_SEL, 0x03 },
6715 { } /* end */ 6720 { } /* end */
6716}; 6721};
6717 6722
6718static struct hda_channel_mode alc889_8ch_intel_modes[2] = { 6723static struct hda_channel_mode alc889_8ch_intel_modes[3] = {
6724 { 2, alc889_ch2_intel_init },
6719 { 6, alc889_ch6_intel_init }, 6725 { 6, alc889_ch6_intel_init },
6720 { 8, alc889_ch8_intel_init }, 6726 { 8, alc889_ch8_intel_init },
6721}; 6727};