diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-08-31 23:36:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-08-31 23:36:10 -0400 |
commit | cda9856f1ca62484433b9f734cd0fd553a5e4850 (patch) | |
tree | 3b917abfdb9ece2193f6499e843de17c2430a4ec | |
parent | af3998909772f766f27ba432f281d60098354269 (diff) | |
parent | a3f730af7e33cea10ea66f05b2565fde1f9512df (diff) |
Merge branch 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'fix/hda' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: hda - Fix MacBookPro 3,1/4,1 quirk with ALC889A
ALSA: hda - Add missing mux check for VT1708
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 34 | ||||
-rw-r--r-- | sound/pci/hda/patch_via.c | 1 |
2 files changed, 21 insertions, 14 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6f683e451f2b..30eeb304351c 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -6423,9 +6423,9 @@ static struct hda_verb alc885_mbp_ch2_init[] = { | |||
6423 | }; | 6423 | }; |
6424 | 6424 | ||
6425 | /* | 6425 | /* |
6426 | * 6ch mode | 6426 | * 4ch mode |
6427 | */ | 6427 | */ |
6428 | static struct hda_verb alc885_mbp_ch6_init[] = { | 6428 | static struct hda_verb alc885_mbp_ch4_init[] = { |
6429 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, | 6429 | { 0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, |
6430 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 6430 | { 0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
6431 | { 0x1a, AC_VERB_SET_CONNECT_SEL, 0x01 }, | 6431 | { 0x1a, AC_VERB_SET_CONNECT_SEL, 0x01 }, |
@@ -6434,9 +6434,9 @@ static struct hda_verb alc885_mbp_ch6_init[] = { | |||
6434 | { } /* end */ | 6434 | { } /* end */ |
6435 | }; | 6435 | }; |
6436 | 6436 | ||
6437 | static struct hda_channel_mode alc885_mbp_6ch_modes[2] = { | 6437 | static struct hda_channel_mode alc885_mbp_4ch_modes[2] = { |
6438 | { 2, alc885_mbp_ch2_init }, | 6438 | { 2, alc885_mbp_ch2_init }, |
6439 | { 6, alc885_mbp_ch6_init }, | 6439 | { 4, alc885_mbp_ch4_init }, |
6440 | }; | 6440 | }; |
6441 | 6441 | ||
6442 | /* | 6442 | /* |
@@ -6497,10 +6497,11 @@ static struct snd_kcontrol_new alc882_base_mixer[] = { | |||
6497 | }; | 6497 | }; |
6498 | 6498 | ||
6499 | static struct snd_kcontrol_new alc885_mbp3_mixer[] = { | 6499 | static struct snd_kcontrol_new alc885_mbp3_mixer[] = { |
6500 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x00, HDA_OUTPUT), | 6500 | HDA_CODEC_VOLUME("Speaker Playback Volume", 0x0c, 0x00, HDA_OUTPUT), |
6501 | HDA_BIND_MUTE ("Front Playback Switch", 0x0c, 0x02, HDA_INPUT), | 6501 | HDA_BIND_MUTE ("Speaker Playback Switch", 0x0c, 0x02, HDA_INPUT), |
6502 | HDA_CODEC_MUTE ("Speaker Playback Switch", 0x14, 0x00, HDA_OUTPUT), | 6502 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0e, 0x00, HDA_OUTPUT), |
6503 | HDA_CODEC_VOLUME("Line-Out Playback Volume", 0x0d, 0x00, HDA_OUTPUT), | 6503 | HDA_BIND_MUTE ("Headphone Playback Switch", 0x0e, 0x02, HDA_INPUT), |
6504 | HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x00, HDA_OUTPUT), | ||
6504 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), | 6505 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), |
6505 | HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), | 6506 | HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), |
6506 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x00, HDA_INPUT), | 6507 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x00, HDA_INPUT), |
@@ -6814,14 +6815,18 @@ static struct hda_verb alc885_mbp3_init_verbs[] = { | |||
6814 | {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | 6815 | {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, |
6815 | {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | 6816 | {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, |
6816 | {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, | 6817 | {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, |
6818 | /* HP mixer */ | ||
6819 | {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO}, | ||
6820 | {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, | ||
6821 | {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)}, | ||
6817 | /* Front Pin: output 0 (0x0c) */ | 6822 | /* Front Pin: output 0 (0x0c) */ |
6818 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 6823 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
6819 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 6824 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
6820 | {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, | 6825 | {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, |
6821 | /* HP Pin: output 0 (0x0d) */ | 6826 | /* HP Pin: output 0 (0x0e) */ |
6822 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc4}, | 6827 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc4}, |
6823 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, | 6828 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
6824 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x00}, | 6829 | {0x15, AC_VERB_SET_CONNECT_SEL, 0x02}, |
6825 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | 6830 | {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, |
6826 | /* Mic (rear) pin: input vref at 80% */ | 6831 | /* Mic (rear) pin: input vref at 80% */ |
6827 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, | 6832 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, |
@@ -7195,10 +7200,11 @@ static struct alc_config_preset alc882_presets[] = { | |||
7195 | .mixers = { alc885_mbp3_mixer, alc882_chmode_mixer }, | 7200 | .mixers = { alc885_mbp3_mixer, alc882_chmode_mixer }, |
7196 | .init_verbs = { alc885_mbp3_init_verbs, | 7201 | .init_verbs = { alc885_mbp3_init_verbs, |
7197 | alc880_gpio1_init_verbs }, | 7202 | alc880_gpio1_init_verbs }, |
7198 | .num_dacs = ARRAY_SIZE(alc882_dac_nids), | 7203 | .num_dacs = 2, |
7199 | .dac_nids = alc882_dac_nids, | 7204 | .dac_nids = alc882_dac_nids, |
7200 | .channel_mode = alc885_mbp_6ch_modes, | 7205 | .hp_nid = 0x04, |
7201 | .num_channel_mode = ARRAY_SIZE(alc885_mbp_6ch_modes), | 7206 | .channel_mode = alc885_mbp_4ch_modes, |
7207 | .num_channel_mode = ARRAY_SIZE(alc885_mbp_4ch_modes), | ||
7202 | .input_mux = &alc882_capture_source, | 7208 | .input_mux = &alc882_capture_source, |
7203 | .dig_out_nid = ALC882_DIGOUT_NID, | 7209 | .dig_out_nid = ALC882_DIGOUT_NID, |
7204 | .dig_in_nid = ALC882_DIGIN_NID, | 7210 | .dig_in_nid = ALC882_DIGIN_NID, |
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 9008b4b013aa..e8f10b10cceb 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
@@ -1395,6 +1395,7 @@ static int patch_vt1708(struct hda_codec *codec) | |||
1395 | if (!spec->adc_nids && spec->input_mux) { | 1395 | if (!spec->adc_nids && spec->input_mux) { |
1396 | spec->adc_nids = vt1708_adc_nids; | 1396 | spec->adc_nids = vt1708_adc_nids; |
1397 | spec->num_adc_nids = ARRAY_SIZE(vt1708_adc_nids); | 1397 | spec->num_adc_nids = ARRAY_SIZE(vt1708_adc_nids); |
1398 | get_mux_nids(codec); | ||
1398 | spec->mixers[spec->num_mixers] = vt1708_capture_mixer; | 1399 | spec->mixers[spec->num_mixers] = vt1708_capture_mixer; |
1399 | spec->num_mixers++; | 1400 | spec->num_mixers++; |
1400 | } | 1401 | } |