aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/sound/alsa/HD-Audio-Models.txt1
-rw-r--r--sound/pci/hda/alc880_quirks.c45
-rw-r--r--sound/pci/hda/patch_realtek.c11
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 */
813static 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
841static const struct hda_verb alc880_pin_tcl_S700_init_verbs[] = { 811static 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
4411static const struct alc_fixup alc880_fixups[] = { 4412static 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
4448static const struct snd_pci_quirk alc880_fixup_tbl[] = { 4458static 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),