diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 48d9d609f89b..f7397ad02a0d 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -5677,6 +5677,7 @@ static const struct hda_verb alc268_beep_init_verbs[] = { | |||
5677 | 5677 | ||
5678 | enum { | 5678 | enum { |
5679 | ALC268_FIXUP_INV_DMIC, | 5679 | ALC268_FIXUP_INV_DMIC, |
5680 | ALC268_FIXUP_HP_EAPD, | ||
5680 | }; | 5681 | }; |
5681 | 5682 | ||
5682 | static const struct alc_fixup alc268_fixups[] = { | 5683 | static const struct alc_fixup alc268_fixups[] = { |
@@ -5684,10 +5685,26 @@ static const struct alc_fixup alc268_fixups[] = { | |||
5684 | .type = ALC_FIXUP_FUNC, | 5685 | .type = ALC_FIXUP_FUNC, |
5685 | .v.func = alc_fixup_inv_dmic_0x12, | 5686 | .v.func = alc_fixup_inv_dmic_0x12, |
5686 | }, | 5687 | }, |
5688 | [ALC268_FIXUP_HP_EAPD] = { | ||
5689 | .type = ALC_FIXUP_VERBS, | ||
5690 | .v.verbs = (const struct hda_verb[]) { | ||
5691 | {0x15, AC_VERB_SET_EAPD_BTLENABLE, 0}, | ||
5692 | {} | ||
5693 | } | ||
5694 | }, | ||
5687 | }; | 5695 | }; |
5688 | 5696 | ||
5689 | static const struct alc_model_fixup alc268_fixup_models[] = { | 5697 | static const struct alc_model_fixup alc268_fixup_models[] = { |
5690 | {.id = ALC268_FIXUP_INV_DMIC, .name = "inv-dmic"}, | 5698 | {.id = ALC268_FIXUP_INV_DMIC, .name = "inv-dmic"}, |
5699 | {.id = ALC268_FIXUP_HP_EAPD, .name = "hp-eapd"}, | ||
5700 | {} | ||
5701 | }; | ||
5702 | |||
5703 | static const struct snd_pci_quirk alc268_fixup_tbl[] = { | ||
5704 | /* below is codec SSID since multiple Toshiba laptops have the | ||
5705 | * same PCI SSID 1179:ff00 | ||
5706 | */ | ||
5707 | SND_PCI_QUIRK(0x1179, 0xff06, "Toshiba P200", ALC268_FIXUP_HP_EAPD), | ||
5691 | {} | 5708 | {} |
5692 | }; | 5709 | }; |
5693 | 5710 | ||
@@ -5722,7 +5739,7 @@ static int patch_alc268(struct hda_codec *codec) | |||
5722 | 5739 | ||
5723 | spec = codec->spec; | 5740 | spec = codec->spec; |
5724 | 5741 | ||
5725 | alc_pick_fixup(codec, alc268_fixup_models, NULL, alc268_fixups); | 5742 | alc_pick_fixup(codec, alc268_fixup_models, alc268_fixup_tbl, alc268_fixups); |
5726 | alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); | 5743 | alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE); |
5727 | 5744 | ||
5728 | /* automatic parse from the BIOS config */ | 5745 | /* automatic parse from the BIOS config */ |
@@ -6188,6 +6205,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { | |||
6188 | SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE), | 6205 | SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE), |
6189 | SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK), | 6206 | SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK), |
6190 | SND_PCI_QUIRK(0x17aa, 0x21fa, "Thinkpad X230", ALC269_FIXUP_LENOVO_DOCK), | 6207 | SND_PCI_QUIRK(0x17aa, 0x21fa, "Thinkpad X230", ALC269_FIXUP_LENOVO_DOCK), |
6208 | SND_PCI_QUIRK(0x17aa, 0x21f3, "Thinkpad T430", ALC269_FIXUP_LENOVO_DOCK), | ||
6191 | SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK), | 6209 | SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK), |
6192 | SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK), | 6210 | SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK), |
6193 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K), | 6211 | SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K), |