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.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index dde858be3be5..1f0a040a9818 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2823,6 +2823,15 @@ static void alc269_fixup_hweq(struct hda_codec *codec,
2823 alc_write_coef_idx(codec, 0x1e, coef | 0x80); 2823 alc_write_coef_idx(codec, 0x1e, coef | 0x80);
2824} 2824}
2825 2825
2826static void alc269_fixup_headset_mic(struct hda_codec *codec,
2827 const struct hda_fixup *fix, int action)
2828{
2829 struct alc_spec *spec = codec->spec;
2830
2831 if (action == HDA_FIXUP_ACT_PRE_PROBE)
2832 spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
2833}
2834
2826static void alc271_fixup_dmic(struct hda_codec *codec, 2835static void alc271_fixup_dmic(struct hda_codec *codec,
2827 const struct hda_fixup *fix, int action) 2836 const struct hda_fixup *fix, int action)
2828{ 2837{
@@ -3520,6 +3529,7 @@ enum {
3520 ALC271_FIXUP_DMIC, 3529 ALC271_FIXUP_DMIC,
3521 ALC269_FIXUP_PCM_44K, 3530 ALC269_FIXUP_PCM_44K,
3522 ALC269_FIXUP_STEREO_DMIC, 3531 ALC269_FIXUP_STEREO_DMIC,
3532 ALC269_FIXUP_HEADSET_MIC,
3523 ALC269_FIXUP_QUANTA_MUTE, 3533 ALC269_FIXUP_QUANTA_MUTE,
3524 ALC269_FIXUP_LIFEBOOK, 3534 ALC269_FIXUP_LIFEBOOK,
3525 ALC269_FIXUP_AMIC, 3535 ALC269_FIXUP_AMIC,
@@ -3532,6 +3542,7 @@ enum {
3532 ALC269_FIXUP_HP_GPIO_LED, 3542 ALC269_FIXUP_HP_GPIO_LED,
3533 ALC269_FIXUP_INV_DMIC, 3543 ALC269_FIXUP_INV_DMIC,
3534 ALC269_FIXUP_LENOVO_DOCK, 3544 ALC269_FIXUP_LENOVO_DOCK,
3545 ALC286_FIXUP_SONY_MIC_NO_PRESENCE,
3535 ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, 3546 ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT,
3536 ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, 3547 ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
3537 ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, 3548 ALC269_FIXUP_DELL2_MIC_NO_PRESENCE,
@@ -3618,6 +3629,10 @@ static const struct hda_fixup alc269_fixups[] = {
3618 .type = HDA_FIXUP_FUNC, 3629 .type = HDA_FIXUP_FUNC,
3619 .v.func = alc269_fixup_stereo_dmic, 3630 .v.func = alc269_fixup_stereo_dmic,
3620 }, 3631 },
3632 [ALC269_FIXUP_HEADSET_MIC] = {
3633 .type = HDA_FIXUP_FUNC,
3634 .v.func = alc269_fixup_headset_mic,
3635 },
3621 [ALC269_FIXUP_QUANTA_MUTE] = { 3636 [ALC269_FIXUP_QUANTA_MUTE] = {
3622 .type = HDA_FIXUP_FUNC, 3637 .type = HDA_FIXUP_FUNC,
3623 .v.func = alc269_fixup_quanta_mute, 3638 .v.func = alc269_fixup_quanta_mute,
@@ -3744,6 +3759,15 @@ static const struct hda_fixup alc269_fixups[] = {
3744 .type = HDA_FIXUP_FUNC, 3759 .type = HDA_FIXUP_FUNC,
3745 .v.func = alc_fixup_headset_mode_no_hp_mic, 3760 .v.func = alc_fixup_headset_mode_no_hp_mic,
3746 }, 3761 },
3762 [ALC286_FIXUP_SONY_MIC_NO_PRESENCE] = {
3763 .type = HDA_FIXUP_PINS,
3764 .v.pins = (const struct hda_pintbl[]) {
3765 { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
3766 { }
3767 },
3768 .chained = true,
3769 .chain_id = ALC269_FIXUP_HEADSET_MIC
3770 },
3747 [ALC269_FIXUP_ASUS_X101_FUNC] = { 3771 [ALC269_FIXUP_ASUS_X101_FUNC] = {
3748 .type = HDA_FIXUP_FUNC, 3772 .type = HDA_FIXUP_FUNC,
3749 .v.func = alc269_fixup_x101_headset_mic, 3773 .v.func = alc269_fixup_x101_headset_mic,
@@ -3898,6 +3922,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
3898 SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC), 3922 SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
3899 SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC), 3923 SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
3900 SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101), 3924 SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101),
3925 SND_PCI_QUIRK(0x104d, 0x90b6, "Sony VAIO Pro 13", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
3901 SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2), 3926 SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2),
3902 SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), 3927 SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
3903 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), 3928 SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
@@ -3983,6 +4008,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
3983 {.id = ALC269_FIXUP_STEREO_DMIC, .name = "alc269-dmic"}, 4008 {.id = ALC269_FIXUP_STEREO_DMIC, .name = "alc269-dmic"},
3984 {.id = ALC271_FIXUP_DMIC, .name = "alc271-dmic"}, 4009 {.id = ALC271_FIXUP_DMIC, .name = "alc271-dmic"},
3985 {.id = ALC269_FIXUP_INV_DMIC, .name = "inv-dmic"}, 4010 {.id = ALC269_FIXUP_INV_DMIC, .name = "inv-dmic"},
4011 {.id = ALC269_FIXUP_HEADSET_MIC, .name = "headset-mic"},
3986 {.id = ALC269_FIXUP_LENOVO_DOCK, .name = "lenovo-dock"}, 4012 {.id = ALC269_FIXUP_LENOVO_DOCK, .name = "lenovo-dock"},
3987 {.id = ALC269_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"}, 4013 {.id = ALC269_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"},
3988 {.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "dell-headset-multi"}, 4014 {.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "dell-headset-multi"},
@@ -4607,6 +4633,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
4607 SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), 4633 SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
4608 SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), 4634 SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
4609 SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800), 4635 SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
4636 SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_ASUS_MODE4),
4610 SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT), 4637 SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT),
4611 SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_FIXUP_ASUS_MODE2), 4638 SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_FIXUP_ASUS_MODE2),
4612 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), 4639 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),