diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 27 |
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 | ||
2826 | static 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 | |||
2826 | static void alc271_fixup_dmic(struct hda_codec *codec, | 2835 | static 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), |