Commit 1d05ad79e1ddbe1f8fbe23f09d14c35b1ac19bce
Committed by
Greg Kroah-Hartman
1 parent
864468a7a6
ALSA: hda/realtek: Add alc269/alc662 pin-tables for Loongson-3 laptops
commit f1ec5be17b9aafbc5f573da023850566b43d8e5e upstream. There are several Loongson-3 based laptops produced by CZC or Lemote, they use alc269/alc662 codecs and need specific pin-tables, this patch add their pin-tables. Signed-off-by: Huacai Chen <chenhc@lemote.com> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/1596360400-32425-1-git-send-email-chenhc@lemote.com Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing 1 changed file with 114 additions and 0 deletions Side-by-side Diff
sound/pci/hda/patch_realtek.c
... | ... | @@ -6131,6 +6131,11 @@ |
6131 | 6131 | ALC289_FIXUP_ASUS_GA502, |
6132 | 6132 | ALC256_FIXUP_ACER_MIC_NO_PRESENCE, |
6133 | 6133 | ALC285_FIXUP_HP_GPIO_AMP_INIT, |
6134 | + ALC269_FIXUP_CZC_B20, | |
6135 | + ALC269_FIXUP_CZC_TMI, | |
6136 | + ALC269_FIXUP_CZC_L101, | |
6137 | + ALC269_FIXUP_LEMOTE_A1802, | |
6138 | + ALC269_FIXUP_LEMOTE_A190X, | |
6134 | 6139 | }; |
6135 | 6140 | |
6136 | 6141 | static const struct hda_fixup alc269_fixups[] = { |
... | ... | @@ -7369,6 +7374,89 @@ |
7369 | 7374 | .chained = true, |
7370 | 7375 | .chain_id = ALC285_FIXUP_HP_GPIO_LED |
7371 | 7376 | }, |
7377 | + [ALC269_FIXUP_CZC_B20] = { | |
7378 | + .type = HDA_FIXUP_PINS, | |
7379 | + .v.pins = (const struct hda_pintbl[]) { | |
7380 | + { 0x12, 0x411111f0 }, | |
7381 | + { 0x14, 0x90170110 }, /* speaker */ | |
7382 | + { 0x15, 0x032f1020 }, /* HP out */ | |
7383 | + { 0x17, 0x411111f0 }, | |
7384 | + { 0x18, 0x03ab1040 }, /* mic */ | |
7385 | + { 0x19, 0xb7a7013f }, | |
7386 | + { 0x1a, 0x0181305f }, | |
7387 | + { 0x1b, 0x411111f0 }, | |
7388 | + { 0x1d, 0x411111f0 }, | |
7389 | + { 0x1e, 0x411111f0 }, | |
7390 | + { } | |
7391 | + }, | |
7392 | + .chain_id = ALC269_FIXUP_DMIC, | |
7393 | + }, | |
7394 | + [ALC269_FIXUP_CZC_TMI] = { | |
7395 | + .type = HDA_FIXUP_PINS, | |
7396 | + .v.pins = (const struct hda_pintbl[]) { | |
7397 | + { 0x12, 0x4000c000 }, | |
7398 | + { 0x14, 0x90170110 }, /* speaker */ | |
7399 | + { 0x15, 0x0421401f }, /* HP out */ | |
7400 | + { 0x17, 0x411111f0 }, | |
7401 | + { 0x18, 0x04a19020 }, /* mic */ | |
7402 | + { 0x19, 0x411111f0 }, | |
7403 | + { 0x1a, 0x411111f0 }, | |
7404 | + { 0x1b, 0x411111f0 }, | |
7405 | + { 0x1d, 0x40448505 }, | |
7406 | + { 0x1e, 0x411111f0 }, | |
7407 | + { 0x20, 0x8000ffff }, | |
7408 | + { } | |
7409 | + }, | |
7410 | + .chain_id = ALC269_FIXUP_DMIC, | |
7411 | + }, | |
7412 | + [ALC269_FIXUP_CZC_L101] = { | |
7413 | + .type = HDA_FIXUP_PINS, | |
7414 | + .v.pins = (const struct hda_pintbl[]) { | |
7415 | + { 0x12, 0x40000000 }, | |
7416 | + { 0x14, 0x01014010 }, /* speaker */ | |
7417 | + { 0x15, 0x411111f0 }, /* HP out */ | |
7418 | + { 0x16, 0x411111f0 }, | |
7419 | + { 0x18, 0x01a19020 }, /* mic */ | |
7420 | + { 0x19, 0x02a19021 }, | |
7421 | + { 0x1a, 0x0181302f }, | |
7422 | + { 0x1b, 0x0221401f }, | |
7423 | + { 0x1c, 0x411111f0 }, | |
7424 | + { 0x1d, 0x4044c601 }, | |
7425 | + { 0x1e, 0x411111f0 }, | |
7426 | + { } | |
7427 | + }, | |
7428 | + .chain_id = ALC269_FIXUP_DMIC, | |
7429 | + }, | |
7430 | + [ALC269_FIXUP_LEMOTE_A1802] = { | |
7431 | + .type = HDA_FIXUP_PINS, | |
7432 | + .v.pins = (const struct hda_pintbl[]) { | |
7433 | + { 0x12, 0x40000000 }, | |
7434 | + { 0x14, 0x90170110 }, /* speaker */ | |
7435 | + { 0x17, 0x411111f0 }, | |
7436 | + { 0x18, 0x03a19040 }, /* mic1 */ | |
7437 | + { 0x19, 0x90a70130 }, /* mic2 */ | |
7438 | + { 0x1a, 0x411111f0 }, | |
7439 | + { 0x1b, 0x411111f0 }, | |
7440 | + { 0x1d, 0x40489d2d }, | |
7441 | + { 0x1e, 0x411111f0 }, | |
7442 | + { 0x20, 0x0003ffff }, | |
7443 | + { 0x21, 0x03214020 }, | |
7444 | + { } | |
7445 | + }, | |
7446 | + .chain_id = ALC269_FIXUP_DMIC, | |
7447 | + }, | |
7448 | + [ALC269_FIXUP_LEMOTE_A190X] = { | |
7449 | + .type = HDA_FIXUP_PINS, | |
7450 | + .v.pins = (const struct hda_pintbl[]) { | |
7451 | + { 0x14, 0x99130110 }, /* speaker */ | |
7452 | + { 0x15, 0x0121401f }, /* HP out */ | |
7453 | + { 0x18, 0x01a19c20 }, /* rear mic */ | |
7454 | + { 0x19, 0x99a3092f }, /* front mic */ | |
7455 | + { 0x1b, 0x0201401f }, /* front lineout */ | |
7456 | + { } | |
7457 | + }, | |
7458 | + .chain_id = ALC269_FIXUP_DMIC, | |
7459 | + }, | |
7372 | 7460 | }; |
7373 | 7461 | |
7374 | 7462 | static const struct snd_pci_quirk alc269_fixup_tbl[] = { |
7375 | 7463 | |
... | ... | @@ -7658,9 +7746,14 @@ |
7658 | 7746 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K), |
7659 | 7747 | SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), |
7660 | 7748 | SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS), |
7749 | + SND_PCI_QUIRK(0x1b35, 0x1235, "CZC B20", ALC269_FIXUP_CZC_B20), | |
7750 | + SND_PCI_QUIRK(0x1b35, 0x1236, "CZC TMI", ALC269_FIXUP_CZC_TMI), | |
7751 | + SND_PCI_QUIRK(0x1b35, 0x1237, "CZC L101", ALC269_FIXUP_CZC_L101), | |
7661 | 7752 | SND_PCI_QUIRK(0x1b7d, 0xa831, "Ordissimo EVE2 ", ALC269VB_FIXUP_ORDISSIMO_EVE2), /* Also known as Malata PC-B1303 */ |
7662 | 7753 | SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC), |
7663 | 7754 | SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE), |
7755 | + SND_PCI_QUIRK(0x1c06, 0x2013, "Lemote A1802", ALC269_FIXUP_LEMOTE_A1802), | |
7756 | + SND_PCI_QUIRK(0x1c06, 0x2015, "Lemote A190X", ALC269_FIXUP_LEMOTE_A190X), | |
7664 | 7757 | |
7665 | 7758 | #if 0 |
7666 | 7759 | /* Below is a quirk table taken from the old code. |
... | ... | @@ -8945,6 +9038,7 @@ |
8945 | 9038 | ALC662_FIXUP_LED_GPIO1, |
8946 | 9039 | ALC662_FIXUP_IDEAPAD, |
8947 | 9040 | ALC272_FIXUP_MARIO, |
9041 | + ALC662_FIXUP_CZC_ET26, | |
8948 | 9042 | ALC662_FIXUP_CZC_P10T, |
8949 | 9043 | ALC662_FIXUP_SKU_IGNORE, |
8950 | 9044 | ALC662_FIXUP_HP_RP5800, |
... | ... | @@ -9014,6 +9108,25 @@ |
9014 | 9108 | .type = HDA_FIXUP_FUNC, |
9015 | 9109 | .v.func = alc272_fixup_mario, |
9016 | 9110 | }, |
9111 | + [ALC662_FIXUP_CZC_ET26] = { | |
9112 | + .type = HDA_FIXUP_PINS, | |
9113 | + .v.pins = (const struct hda_pintbl[]) { | |
9114 | + {0x12, 0x403cc000}, | |
9115 | + {0x14, 0x90170110}, /* speaker */ | |
9116 | + {0x15, 0x411111f0}, | |
9117 | + {0x16, 0x411111f0}, | |
9118 | + {0x18, 0x01a19030}, /* mic */ | |
9119 | + {0x19, 0x90a7013f}, /* int-mic */ | |
9120 | + {0x1a, 0x01014020}, | |
9121 | + {0x1b, 0x0121401f}, | |
9122 | + {0x1c, 0x411111f0}, | |
9123 | + {0x1d, 0x411111f0}, | |
9124 | + {0x1e, 0x40478e35}, | |
9125 | + {} | |
9126 | + }, | |
9127 | + .chained = true, | |
9128 | + .chain_id = ALC662_FIXUP_SKU_IGNORE | |
9129 | + }, | |
9017 | 9130 | [ALC662_FIXUP_CZC_P10T] = { |
9018 | 9131 | .type = HDA_FIXUP_VERBS, |
9019 | 9132 | .v.verbs = (const struct hda_verb[]) { |
... | ... | @@ -9397,6 +9510,7 @@ |
9397 | 9510 | SND_PCI_QUIRK(0x1849, 0x5892, "ASRock B150M", ALC892_FIXUP_ASROCK_MOBO), |
9398 | 9511 | SND_PCI_QUIRK(0x19da, 0xa130, "Zotac Z68", ALC662_FIXUP_ZOTAC_Z68), |
9399 | 9512 | SND_PCI_QUIRK(0x1b0a, 0x01b8, "ACER Veriton", ALC662_FIXUP_ACER_VERITON), |
9513 | + SND_PCI_QUIRK(0x1b35, 0x1234, "CZC ET26", ALC662_FIXUP_CZC_ET26), | |
9400 | 9514 | SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T), |
9401 | 9515 | SND_PCI_QUIRK(0x1025, 0x0566, "Acer Aspire Ethos 8951G", ALC669_FIXUP_ACER_ASPIRE_ETHOS), |
9402 | 9516 |