]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
ALSA: hda/realtek - Add support headset mode for DELL WYSE AIO
authorKailang Yang <kailang@realtek.com>
Wed, 17 Apr 2019 08:25:44 +0000 (16:25 +0800)
committerKhalid Elmously <khalid.elmously@canonical.com>
Tue, 23 Apr 2019 04:17:28 +0000 (00:17 -0400)
BugLink: https://launchpad.net/bugs/1821290
This patch will enable WYSE AIO for Headset mode.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
(backported from commit 136824efaab2c095fc911048f7c7ddeda258c965)
Signed-off-by: Wen-chien Jesse Sung <jesse.sung@canonical.com>
Acked-by: AceLan Kao <acelan.kao@canonical.com>
Acked-by: hwang4 <hui.wang@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
sound/pci/hda/patch_realtek.c

index ee3cb04064be7a73be8edf21bd4a2b93bc1ac0e9..7c30dcc1b627aaf621d6dae1f601c97ad4877448 100644 (file)
@@ -5565,6 +5565,9 @@ enum {
        ALC285_FIXUP_LENOVO_HEADPHONE_NOISE,
        ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
        ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
+       ALC225_FIXUP_DELL_WYSE_AIO_MIC_NO_PRESENCE,
+       ALC225_FIXUP_WYSE_AUTO_MUTE,
+       ALC225_FIXUP_WYSE_DISABLE_MIC_VREF,
 };
 
 static const struct hda_fixup alc269_fixups[] = {
@@ -6475,6 +6478,28 @@ static const struct hda_fixup alc269_fixups[] = {
                .chained = true,
                .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
        },
+       [ALC225_FIXUP_DELL_WYSE_AIO_MIC_NO_PRESENCE] = {
+               .type = HDA_FIXUP_PINS,
+               .v.pins = (const struct hda_pintbl[]) {
+                       { 0x16, 0x01011020 }, /* Rear Line out */
+                       { 0x19, 0x01a1913c }, /* use as Front headset mic, without its own jack detect */
+                       { }
+               },
+               .chained = true,
+               .chain_id = ALC225_FIXUP_WYSE_AUTO_MUTE
+       },
+       [ALC225_FIXUP_WYSE_AUTO_MUTE] = {
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc_fixup_auto_mute_via_amp,
+               .chained = true,
+               .chain_id = ALC225_FIXUP_WYSE_DISABLE_MIC_VREF
+       },
+       [ALC225_FIXUP_WYSE_DISABLE_MIC_VREF] = {
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc_fixup_disable_mic_vref,
+               .chained = true,
+               .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC
+       },
 };
 
 static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -6532,6 +6557,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
        SND_PCI_QUIRK(0x1028, 0x0871, "Dell Precision 3630", ALC255_FIXUP_DELL_HEADSET_MIC),
        SND_PCI_QUIRK(0x1028, 0x0872, "Dell Precision 3630", ALC255_FIXUP_DELL_HEADSET_MIC),
        SND_PCI_QUIRK(0x1028, 0x0873, "Dell Precision 3930", ALC255_FIXUP_DUMMY_LINEOUT_VERB),
+       SND_PCI_QUIRK(0x1028, 0x08ad, "Dell WYSE AIO", ALC225_FIXUP_DELL_WYSE_AIO_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0935, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
        SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),