diff options
-rw-r--r-- | Documentation/sound/alsa/HD-Audio-Models.txt | 1 | ||||
-rw-r--r-- | sound/pci/hda/alc880_quirks.c | 45 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 11 |
3 files changed, 11 insertions, 46 deletions
diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index 24df3ab41932..58e8aac40a98 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt | |||
@@ -18,7 +18,6 @@ ALC880 | |||
18 | F1734 2-jack | 18 | F1734 2-jack |
19 | lg-lw LG LW20/LW25 laptop | 19 | lg-lw LG LW20/LW25 laptop |
20 | tcl TCL S700 | 20 | tcl TCL S700 |
21 | clevo Clevo laptops (m520G, m665n) | ||
22 | medion Medion Rim 2150 | 21 | medion Medion Rim 2150 |
23 | test for testing/debugging purpose, almost all controls can be | 22 | test for testing/debugging purpose, almost all controls can be |
24 | adjusted. Appearing only when compiled with | 23 | adjusted. Appearing only when compiled with |
diff --git a/sound/pci/hda/alc880_quirks.c b/sound/pci/hda/alc880_quirks.c index 41aecda30a87..b64d2464a780 100644 --- a/sound/pci/hda/alc880_quirks.c +++ b/sound/pci/hda/alc880_quirks.c | |||
@@ -22,7 +22,6 @@ enum { | |||
22 | ALC880_UNIWILL_DIG, | 22 | ALC880_UNIWILL_DIG, |
23 | ALC880_UNIWILL, | 23 | ALC880_UNIWILL, |
24 | ALC880_UNIWILL_P53, | 24 | ALC880_UNIWILL_P53, |
25 | ALC880_CLEVO, | ||
26 | ALC880_TCL_S700, | 25 | ALC880_TCL_S700, |
27 | #ifdef CONFIG_SND_DEBUG | 26 | #ifdef CONFIG_SND_DEBUG |
28 | ALC880_TEST, | 27 | ALC880_TEST, |
@@ -809,35 +808,6 @@ static const struct hda_verb alc880_pin_asus_init_verbs[] = { | |||
809 | #define alc880_gpio2_init_verbs alc_gpio2_init_verbs | 808 | #define alc880_gpio2_init_verbs alc_gpio2_init_verbs |
810 | #define alc880_gpio3_init_verbs alc_gpio3_init_verbs | 809 | #define alc880_gpio3_init_verbs alc_gpio3_init_verbs |
811 | 810 | ||
812 | /* Clevo m520g init */ | ||
813 | static const struct hda_verb alc880_pin_clevo_init_verbs[] = { | ||
814 | /* headphone output */ | ||
815 | {0x11, AC_VERB_SET_CONNECT_SEL, 0x01}, | ||
816 | /* line-out */ | ||
817 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | ||
818 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
819 | /* Line-in */ | ||
820 | {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | ||
821 | {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
822 | /* CD */ | ||
823 | {0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, | ||
824 | {0x1c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
825 | /* Mic1 (rear panel) */ | ||
826 | {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, | ||
827 | {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
828 | /* Mic2 (front panel) */ | ||
829 | {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, | ||
830 | {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
831 | /* headphone */ | ||
832 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, | ||
833 | {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | ||
834 | /* change to EAPD mode */ | ||
835 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, | ||
836 | {0x20, AC_VERB_SET_PROC_COEF, 0x3060}, | ||
837 | |||
838 | { } | ||
839 | }; | ||
840 | |||
841 | static const struct hda_verb alc880_pin_tcl_S700_init_verbs[] = { | 811 | static const struct hda_verb alc880_pin_tcl_S700_init_verbs[] = { |
842 | /* change to EAPD mode */ | 812 | /* change to EAPD mode */ |
843 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, | 813 | {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, |
@@ -1134,7 +1104,6 @@ static const char * const alc880_models[ALC880_MODEL_LAST] = { | |||
1134 | [ALC880_3ST] = "3stack", | 1104 | [ALC880_3ST] = "3stack", |
1135 | [ALC880_TCL_S700] = "tcl", | 1105 | [ALC880_TCL_S700] = "tcl", |
1136 | [ALC880_3ST_DIG] = "3stack-digout", | 1106 | [ALC880_3ST_DIG] = "3stack-digout", |
1137 | [ALC880_CLEVO] = "clevo", | ||
1138 | [ALC880_5ST] = "5stack", | 1107 | [ALC880_5ST] = "5stack", |
1139 | [ALC880_5ST_DIG] = "5stack-digout", | 1108 | [ALC880_5ST_DIG] = "5stack-digout", |
1140 | [ALC880_Z71V] = "z71v", | 1109 | [ALC880_Z71V] = "z71v", |
@@ -1188,8 +1157,6 @@ static const struct snd_pci_quirk alc880_cfg_tbl[] = { | |||
1188 | SND_PCI_QUIRK(0x1458, 0xa102, "Gigabyte K8", ALC880_6ST_DIG), | 1157 | SND_PCI_QUIRK(0x1458, 0xa102, "Gigabyte K8", ALC880_6ST_DIG), |
1189 | SND_PCI_QUIRK(0x1462, 0x1150, "MSI", ALC880_6ST_DIG), | 1158 | SND_PCI_QUIRK(0x1462, 0x1150, "MSI", ALC880_6ST_DIG), |
1190 | SND_PCI_QUIRK(0x1509, 0x925d, "FIC P4M", ALC880_6ST_DIG), | 1159 | SND_PCI_QUIRK(0x1509, 0x925d, "FIC P4M", ALC880_6ST_DIG), |
1191 | SND_PCI_QUIRK(0x1558, 0x0520, "Clevo m520G", ALC880_CLEVO), | ||
1192 | SND_PCI_QUIRK(0x1558, 0x0660, "Clevo m655n", ALC880_CLEVO), | ||
1193 | SND_PCI_QUIRK(0x1558, 0x5401, "ASUS", ALC880_ASUS_DIG2), | 1160 | SND_PCI_QUIRK(0x1558, 0x5401, "ASUS", ALC880_ASUS_DIG2), |
1194 | SND_PCI_QUIRK(0x1565, 0x8202, "Biostar", ALC880_5ST_DIG), | 1161 | SND_PCI_QUIRK(0x1565, 0x8202, "Biostar", ALC880_5ST_DIG), |
1195 | SND_PCI_QUIRK(0x1584, 0x9050, "Uniwill", ALC880_UNIWILL_DIG), | 1162 | SND_PCI_QUIRK(0x1584, 0x9050, "Uniwill", ALC880_UNIWILL_DIG), |
@@ -1439,18 +1406,6 @@ static const struct alc_config_preset alc880_presets[] = { | |||
1439 | .setup = alc880_uniwill_p53_setup, | 1406 | .setup = alc880_uniwill_p53_setup, |
1440 | .init_hook = alc_hp_automute, | 1407 | .init_hook = alc_hp_automute, |
1441 | }, | 1408 | }, |
1442 | [ALC880_CLEVO] = { | ||
1443 | .mixers = { alc880_three_stack_mixer }, | ||
1444 | .init_verbs = { alc880_volume_init_verbs, | ||
1445 | alc880_pin_clevo_init_verbs }, | ||
1446 | .num_dacs = ARRAY_SIZE(alc880_dac_nids), | ||
1447 | .dac_nids = alc880_dac_nids, | ||
1448 | .hp_nid = 0x03, | ||
1449 | .num_channel_mode = ARRAY_SIZE(alc880_threestack_modes), | ||
1450 | .channel_mode = alc880_threestack_modes, | ||
1451 | .need_dac_fix = 1, | ||
1452 | .input_mux = &alc880_capture_source, | ||
1453 | }, | ||
1454 | #ifdef CONFIG_SND_DEBUG | 1409 | #ifdef CONFIG_SND_DEBUG |
1455 | [ALC880_TEST] = { | 1410 | [ALC880_TEST] = { |
1456 | .mixers = { alc880_test_mixer }, | 1411 | .mixers = { alc880_test_mixer }, |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a0df05d03864..4f8c36207997 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -4406,6 +4406,7 @@ enum { | |||
4406 | ALC880_FIXUP_MEDION_RIM, | 4406 | ALC880_FIXUP_MEDION_RIM, |
4407 | ALC880_FIXUP_LG, | 4407 | ALC880_FIXUP_LG, |
4408 | ALC880_FIXUP_W810, | 4408 | ALC880_FIXUP_W810, |
4409 | ALC880_FIXUP_EAPD_COEF, | ||
4409 | }; | 4410 | }; |
4410 | 4411 | ||
4411 | static const struct alc_fixup alc880_fixups[] = { | 4412 | static const struct alc_fixup alc880_fixups[] = { |
@@ -4443,10 +4444,20 @@ static const struct alc_fixup alc880_fixups[] = { | |||
4443 | .chained = true, | 4444 | .chained = true, |
4444 | .chain_id = ALC880_FIXUP_GPIO2, | 4445 | .chain_id = ALC880_FIXUP_GPIO2, |
4445 | }, | 4446 | }, |
4447 | [ALC880_FIXUP_EAPD_COEF] = { | ||
4448 | .type = ALC_FIXUP_VERBS, | ||
4449 | .v.verbs = (const struct hda_verb[]) { | ||
4450 | /* change to EAPD mode */ | ||
4451 | { 0x20, AC_VERB_SET_COEF_INDEX, 0x07 }, | ||
4452 | { 0x20, AC_VERB_SET_PROC_COEF, 0x3060 }, | ||
4453 | {} | ||
4454 | }, | ||
4455 | }, | ||
4446 | }; | 4456 | }; |
4447 | 4457 | ||
4448 | static const struct snd_pci_quirk alc880_fixup_tbl[] = { | 4458 | static const struct snd_pci_quirk alc880_fixup_tbl[] = { |
4449 | SND_PCI_QUIRK(0x1019, 0x0f69, "Coeus G610P", ALC880_FIXUP_W810), | 4459 | SND_PCI_QUIRK(0x1019, 0x0f69, "Coeus G610P", ALC880_FIXUP_W810), |
4460 | SND_PCI_QUIRK_VENDOR(0x1558, "Clevo", ALC880_FIXUP_EAPD_COEF), | ||
4450 | SND_PCI_QUIRK(0x161f, 0x203d, "W810", ALC880_FIXUP_W810), | 4461 | SND_PCI_QUIRK(0x161f, 0x203d, "W810", ALC880_FIXUP_W810), |
4451 | SND_PCI_QUIRK(0x161f, 0x205d, "Medion Rim 2150", ALC880_FIXUP_MEDION_RIM), | 4462 | SND_PCI_QUIRK(0x161f, 0x205d, "Medion Rim 2150", ALC880_FIXUP_MEDION_RIM), |
4452 | SND_PCI_QUIRK(0x1854, 0x003b, "LG", ALC880_FIXUP_LG), | 4463 | SND_PCI_QUIRK(0x1854, 0x003b, "LG", ALC880_FIXUP_LG), |