diff options
author | Takashi Iwai <tiwai@suse.de> | 2012-02-20 11:41:51 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-02-20 11:43:00 -0500 |
commit | 96e225f6922ecf3afafb55fdb0e6e771b3f71e94 (patch) | |
tree | 0311b0dbf8e910c7840d83271e2f2227cec8fd7a /sound/pci/hda/alc880_quirks.c | |
parent | 967b88c47744f7ec424c71630c1f551d34e08eef (diff) |
ALSA: hda/realtek - Rewrite ALC880 model=z71v with auto-parser
ASUS Z71V has a totally broken BIOS setup (at least the info I got),
thus we need to override the whole pin-config table to make the
auto-parser working correctly.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/alc880_quirks.c')
-rw-r--r-- | sound/pci/hda/alc880_quirks.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/sound/pci/hda/alc880_quirks.c b/sound/pci/hda/alc880_quirks.c index 59899f8b056f..6caa2010a851 100644 --- a/sound/pci/hda/alc880_quirks.c +++ b/sound/pci/hda/alc880_quirks.c | |||
@@ -10,7 +10,6 @@ enum { | |||
10 | ALC880_3ST_DIG, | 10 | ALC880_3ST_DIG, |
11 | ALC880_5ST, | 11 | ALC880_5ST, |
12 | ALC880_5ST_DIG, | 12 | ALC880_5ST_DIG, |
13 | ALC880_Z71V, | ||
14 | ALC880_6ST, | 13 | ALC880_6ST, |
15 | ALC880_6ST_DIG, | 14 | ALC880_6ST_DIG, |
16 | ALC880_ASUS, | 15 | ALC880_ASUS, |
@@ -223,36 +222,11 @@ static const hda_nid_t alc880_w810_dac_nids[3] = { | |||
223 | 0x02, 0x03, 0x04 | 222 | 0x02, 0x03, 0x04 |
224 | }; | 223 | }; |
225 | 224 | ||
226 | /* | ||
227 | * Z710V model | ||
228 | * | ||
229 | * DAC: Front = 0x02 (0x0c), HP = 0x03 (0x0d) | ||
230 | * Pin assignment: Front = 0x14, HP = 0x15, Mic = 0x18, Mic2 = 0x19(?), | ||
231 | * Line = 0x1a | ||
232 | */ | ||
233 | |||
234 | static const hda_nid_t alc880_z71v_dac_nids[1] = { | ||
235 | 0x02 | ||
236 | }; | ||
237 | #define ALC880_Z71V_HP_DAC 0x03 | ||
238 | |||
239 | /* fixed 2 channels */ | 225 | /* fixed 2 channels */ |
240 | static const struct hda_channel_mode alc880_2_jack_modes[1] = { | 226 | static const struct hda_channel_mode alc880_2_jack_modes[1] = { |
241 | { 2, NULL } | 227 | { 2, NULL } |
242 | }; | 228 | }; |
243 | 229 | ||
244 | static const struct snd_kcontrol_new alc880_z71v_mixer[] = { | ||
245 | HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), | ||
246 | HDA_BIND_MUTE("Front Playback Switch", 0x0c, 2, HDA_INPUT), | ||
247 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0d, 0x0, HDA_OUTPUT), | ||
248 | HDA_BIND_MUTE("Headphone Playback Switch", 0x0d, 2, HDA_INPUT), | ||
249 | HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), | ||
250 | HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), | ||
251 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), | ||
252 | HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), | ||
253 | { } /* end */ | ||
254 | }; | ||
255 | |||
256 | /* | 230 | /* |
257 | * ALC880 ASUS model | 231 | * ALC880 ASUS model |
258 | * | 232 | * |
@@ -441,24 +415,6 @@ static const struct hda_verb alc880_pin_5stack_init_verbs[] = { | |||
441 | }; | 415 | }; |
442 | 416 | ||
443 | /* | 417 | /* |
444 | * Z71V pin configuration: | ||
445 | * Speaker-out = 0x14, HP = 0x15, Mic = 0x18, Line-in = 0x1a, Mic2 = 0x1b (?) | ||
446 | */ | ||
447 | static const struct hda_verb alc880_pin_z71v_init_verbs[] = { | ||
448 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | ||
449 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
450 | {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | ||
451 | {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
452 | |||
453 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, | ||
454 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | ||
455 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, | ||
456 | {0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | ||
457 | |||
458 | { } | ||
459 | }; | ||
460 | |||
461 | /* | ||
462 | * 6-stack pin configuration: | 418 | * 6-stack pin configuration: |
463 | * front = 0x14, surr = 0x15, clfe = 0x16, side = 0x17, mic = 0x18, | 419 | * front = 0x14, surr = 0x15, clfe = 0x16, side = 0x17, mic = 0x18, |
464 | * f-mic = 0x19, line = 0x1a, HP = 0x1b | 420 | * f-mic = 0x19, line = 0x1a, HP = 0x1b |
@@ -802,7 +758,6 @@ static const char * const alc880_models[ALC880_MODEL_LAST] = { | |||
802 | [ALC880_3ST_DIG] = "3stack-digout", | 758 | [ALC880_3ST_DIG] = "3stack-digout", |
803 | [ALC880_5ST] = "5stack", | 759 | [ALC880_5ST] = "5stack", |
804 | [ALC880_5ST_DIG] = "5stack-digout", | 760 | [ALC880_5ST_DIG] = "5stack-digout", |
805 | [ALC880_Z71V] = "z71v", | ||
806 | [ALC880_6ST] = "6stack", | 761 | [ALC880_6ST] = "6stack", |
807 | [ALC880_6ST_DIG] = "6stack-digout", | 762 | [ALC880_6ST_DIG] = "6stack-digout", |
808 | [ALC880_ASUS] = "asus", | 763 | [ALC880_ASUS] = "asus", |
@@ -831,7 +786,6 @@ static const struct snd_pci_quirk alc880_cfg_tbl[] = { | |||
831 | SND_PCI_QUIRK(0x1043, 0x1113, "ASUS", ALC880_ASUS_DIG), | 786 | SND_PCI_QUIRK(0x1043, 0x1113, "ASUS", ALC880_ASUS_DIG), |
832 | SND_PCI_QUIRK(0x1043, 0x1123, "ASUS", ALC880_ASUS_DIG), | 787 | SND_PCI_QUIRK(0x1043, 0x1123, "ASUS", ALC880_ASUS_DIG), |
833 | SND_PCI_QUIRK(0x1043, 0x1173, "ASUS", ALC880_ASUS_DIG), | 788 | SND_PCI_QUIRK(0x1043, 0x1173, "ASUS", ALC880_ASUS_DIG), |
834 | SND_PCI_QUIRK(0x1043, 0x1964, "ASUS Z71V", ALC880_Z71V), | ||
835 | /* SND_PCI_QUIRK(0x1043, 0x1964, "ASUS", ALC880_ASUS_DIG), */ | 789 | /* SND_PCI_QUIRK(0x1043, 0x1964, "ASUS", ALC880_ASUS_DIG), */ |
836 | SND_PCI_QUIRK(0x1043, 0x1973, "ASUS", ALC880_ASUS_DIG), | 790 | SND_PCI_QUIRK(0x1043, 0x1973, "ASUS", ALC880_ASUS_DIG), |
837 | SND_PCI_QUIRK(0x1043, 0x19b3, "ASUS", ALC880_ASUS_DIG), | 791 | SND_PCI_QUIRK(0x1043, 0x19b3, "ASUS", ALC880_ASUS_DIG), |
@@ -943,18 +897,6 @@ static const struct alc_config_preset alc880_presets[] = { | |||
943 | .channel_mode = alc880_sixstack_modes, | 897 | .channel_mode = alc880_sixstack_modes, |
944 | .input_mux = &alc880_6stack_capture_source, | 898 | .input_mux = &alc880_6stack_capture_source, |
945 | }, | 899 | }, |
946 | [ALC880_Z71V] = { | ||
947 | .mixers = { alc880_z71v_mixer }, | ||
948 | .init_verbs = { alc880_volume_init_verbs, | ||
949 | alc880_pin_z71v_init_verbs }, | ||
950 | .num_dacs = ARRAY_SIZE(alc880_z71v_dac_nids), | ||
951 | .dac_nids = alc880_z71v_dac_nids, | ||
952 | .dig_out_nid = ALC880_DIGOUT_NID, | ||
953 | .hp_nid = 0x03, | ||
954 | .num_channel_mode = ARRAY_SIZE(alc880_2_jack_modes), | ||
955 | .channel_mode = alc880_2_jack_modes, | ||
956 | .input_mux = &alc880_capture_source, | ||
957 | }, | ||
958 | [ALC880_ASUS] = { | 900 | [ALC880_ASUS] = { |
959 | .mixers = { alc880_asus_mixer }, | 901 | .mixers = { alc880_asus_mixer }, |
960 | .init_verbs = { alc880_volume_init_verbs, | 902 | .init_verbs = { alc880_volume_init_verbs, |