aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_realtek.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r--sound/pci/hda/patch_realtek.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 71ae23dd7103..5faaad219a7f 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -4694,6 +4694,7 @@ static const struct snd_pci_quirk alc880_fixup_tbl[] = {
4694 SND_PCI_QUIRK(0x1584, 0x9077, "Uniwill P53", ALC880_FIXUP_VOL_KNOB), 4694 SND_PCI_QUIRK(0x1584, 0x9077, "Uniwill P53", ALC880_FIXUP_VOL_KNOB),
4695 SND_PCI_QUIRK(0x161f, 0x203d, "W810", ALC880_FIXUP_W810), 4695 SND_PCI_QUIRK(0x161f, 0x203d, "W810", ALC880_FIXUP_W810),
4696 SND_PCI_QUIRK(0x161f, 0x205d, "Medion Rim 2150", ALC880_FIXUP_MEDION_RIM), 4696 SND_PCI_QUIRK(0x161f, 0x205d, "Medion Rim 2150", ALC880_FIXUP_MEDION_RIM),
4697 SND_PCI_QUIRK(0x1631, 0xe011, "PB 13201056", ALC880_FIXUP_6ST),
4697 SND_PCI_QUIRK(0x1734, 0x107c, "FSC F1734", ALC880_FIXUP_F1734), 4698 SND_PCI_QUIRK(0x1734, 0x107c, "FSC F1734", ALC880_FIXUP_F1734),
4698 SND_PCI_QUIRK(0x1734, 0x1094, "FSC Amilo M1451G", ALC880_FIXUP_FUJITSU), 4699 SND_PCI_QUIRK(0x1734, 0x1094, "FSC Amilo M1451G", ALC880_FIXUP_FUJITSU),
4699 SND_PCI_QUIRK(0x1734, 0x10ac, "FSC AMILO Xi 1526", ALC880_FIXUP_F1734), 4700 SND_PCI_QUIRK(0x1734, 0x10ac, "FSC AMILO Xi 1526", ALC880_FIXUP_F1734),
@@ -5708,6 +5709,7 @@ static const struct alc_model_fixup alc268_fixup_models[] = {
5708}; 5709};
5709 5710
5710static const struct snd_pci_quirk alc268_fixup_tbl[] = { 5711static const struct snd_pci_quirk alc268_fixup_tbl[] = {
5712 SND_PCI_QUIRK(0x1025, 0x015b, "Acer AOA 150 (ZG5)", ALC268_FIXUP_INV_DMIC),
5711 /* below is codec SSID since multiple Toshiba laptops have the 5713 /* below is codec SSID since multiple Toshiba laptops have the
5712 * same PCI SSID 1179:ff00 5714 * same PCI SSID 1179:ff00
5713 */ 5715 */
@@ -5817,6 +5819,9 @@ enum {
5817 ALC269_TYPE_ALC269VB, 5819 ALC269_TYPE_ALC269VB,
5818 ALC269_TYPE_ALC269VC, 5820 ALC269_TYPE_ALC269VC,
5819 ALC269_TYPE_ALC269VD, 5821 ALC269_TYPE_ALC269VD,
5822 ALC269_TYPE_ALC280,
5823 ALC269_TYPE_ALC282,
5824 ALC269_TYPE_ALC284,
5820}; 5825};
5821 5826
5822/* 5827/*
@@ -5833,10 +5838,13 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
5833 switch (spec->codec_variant) { 5838 switch (spec->codec_variant) {
5834 case ALC269_TYPE_ALC269VA: 5839 case ALC269_TYPE_ALC269VA:
5835 case ALC269_TYPE_ALC269VC: 5840 case ALC269_TYPE_ALC269VC:
5841 case ALC269_TYPE_ALC280:
5842 case ALC269_TYPE_ALC284:
5836 ssids = alc269va_ssids; 5843 ssids = alc269va_ssids;
5837 break; 5844 break;
5838 case ALC269_TYPE_ALC269VB: 5845 case ALC269_TYPE_ALC269VB:
5839 case ALC269_TYPE_ALC269VD: 5846 case ALC269_TYPE_ALC269VD:
5847 case ALC269_TYPE_ALC282:
5840 ssids = alc269_ssids; 5848 ssids = alc269_ssids;
5841 break; 5849 break;
5842 default: 5850 default:
@@ -6245,6 +6253,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
6245 SND_PCI_QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_FIXUP_INV_DMIC), 6253 SND_PCI_QUIRK(0x1025, 0x0349, "Acer AOD260", ALC269_FIXUP_INV_DMIC),
6246 SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_MIC2_MUTE_LED), 6254 SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_MIC2_MUTE_LED),
6247 SND_PCI_QUIRK(0x103c, 0x1972, "HP Pavilion 17", ALC269_FIXUP_MIC1_MUTE_LED), 6255 SND_PCI_QUIRK(0x103c, 0x1972, "HP Pavilion 17", ALC269_FIXUP_MIC1_MUTE_LED),
6256 SND_PCI_QUIRK(0x103c, 0x1977, "HP Pavilion 14", ALC269_FIXUP_MIC1_MUTE_LED),
6248 SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC), 6257 SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC),
6249 SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_DMIC), 6258 SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_DMIC),
6250 SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), 6259 SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
@@ -6259,6 +6268,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
6259 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), 6268 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
6260 SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), 6269 SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO),
6261 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), 6270 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
6271 SND_PCI_QUIRK(0x1025, 0x0740, "Acer AO725", ALC271_FIXUP_HP_GATE_MIC_JACK),
6262 SND_PCI_QUIRK(0x1025, 0x0742, "Acer AO756", ALC271_FIXUP_HP_GATE_MIC_JACK), 6272 SND_PCI_QUIRK(0x1025, 0x0742, "Acer AO756", ALC271_FIXUP_HP_GATE_MIC_JACK),
6263 SND_PCI_QUIRK_VENDOR(0x1025, "Acer Aspire", ALC271_FIXUP_DMIC), 6273 SND_PCI_QUIRK_VENDOR(0x1025, "Acer Aspire", ALC271_FIXUP_DMIC),
6264 SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK), 6274 SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK),
@@ -6400,7 +6410,8 @@ static int patch_alc269(struct hda_codec *codec)
6400 6410
6401 alc_auto_parse_customize_define(codec); 6411 alc_auto_parse_customize_define(codec);
6402 6412
6403 if (codec->vendor_id == 0x10ec0269) { 6413 switch (codec->vendor_id) {
6414 case 0x10ec0269:
6404 spec->codec_variant = ALC269_TYPE_ALC269VA; 6415 spec->codec_variant = ALC269_TYPE_ALC269VA;
6405 switch (alc_get_coef0(codec) & 0x00f0) { 6416 switch (alc_get_coef0(codec) & 0x00f0) {
6406 case 0x0010: 6417 case 0x0010:
@@ -6425,6 +6436,20 @@ static int patch_alc269(struct hda_codec *codec)
6425 goto error; 6436 goto error;
6426 spec->init_hook = alc269_fill_coef; 6437 spec->init_hook = alc269_fill_coef;
6427 alc269_fill_coef(codec); 6438 alc269_fill_coef(codec);
6439 break;
6440
6441 case 0x10ec0280:
6442 case 0x10ec0290:
6443 spec->codec_variant = ALC269_TYPE_ALC280;
6444 break;
6445 case 0x10ec0282:
6446 case 0x10ec0283:
6447 spec->codec_variant = ALC269_TYPE_ALC282;
6448 break;
6449 case 0x10ec0284:
6450 case 0x10ec0292:
6451 spec->codec_variant = ALC269_TYPE_ALC284;
6452 break;
6428 } 6453 }
6429 6454
6430 /* automatic parse from the BIOS config */ 6455 /* automatic parse from the BIOS config */
@@ -7129,6 +7154,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = {
7129 { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 }, 7154 { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 },
7130 { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, 7155 { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 },
7131 { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, 7156 { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 },
7157 { .id = 0x10ec0284, .name = "ALC284", .patch = patch_alc269 },
7132 { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, 7158 { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 },
7133 { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 }, 7159 { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 },
7134 { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", 7160 { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",