diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 28 |
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 | ||
5710 | static const struct snd_pci_quirk alc268_fixup_tbl[] = { | 5711 | static 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", |