Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next
[firefly-linux-kernel-4.4.55.git] / sound / pci / hda / patch_realtek.c
index 374ea53288ca25ff6093467012afd2607192f505..afec6dc9f91fddcf8c0023b344771307aa684d3a 100644 (file)
@@ -1135,7 +1135,7 @@ static const struct hda_fixup alc880_fixups[] = {
                /* override all pins as BIOS on old Amilo is broken */
                .type = HDA_FIXUP_PINS,
                .v.pins = (const struct hda_pintbl[]) {
-                       { 0x14, 0x0121411f }, /* HP */
+                       { 0x14, 0x0121401f }, /* HP */
                        { 0x15, 0x99030120 }, /* speaker */
                        { 0x16, 0x99030130 }, /* bass speaker */
                        { 0x17, 0x411111f0 }, /* N/A */
@@ -1155,7 +1155,7 @@ static const struct hda_fixup alc880_fixups[] = {
                /* almost compatible with FUJITSU, but no bass and SPDIF */
                .type = HDA_FIXUP_PINS,
                .v.pins = (const struct hda_pintbl[]) {
-                       { 0x14, 0x0121411f }, /* HP */
+                       { 0x14, 0x0121401f }, /* HP */
                        { 0x15, 0x99030120 }, /* speaker */
                        { 0x16, 0x411111f0 }, /* N/A */
                        { 0x17, 0x411111f0 }, /* N/A */
@@ -1364,7 +1364,7 @@ static const struct snd_pci_quirk alc880_fixup_tbl[] = {
        SND_PCI_QUIRK(0x161f, 0x203d, "W810", ALC880_FIXUP_W810),
        SND_PCI_QUIRK(0x161f, 0x205d, "Medion Rim 2150", ALC880_FIXUP_MEDION_RIM),
        SND_PCI_QUIRK(0x1631, 0xe011, "PB 13201056", ALC880_FIXUP_6ST_AUTOMUTE),
-       SND_PCI_QUIRK(0x1734, 0x107c, "FSC F1734", ALC880_FIXUP_F1734),
+       SND_PCI_QUIRK(0x1734, 0x107c, "FSC Amilo M1437", ALC880_FIXUP_FUJITSU),
        SND_PCI_QUIRK(0x1734, 0x1094, "FSC Amilo M1451G", ALC880_FIXUP_FUJITSU),
        SND_PCI_QUIRK(0x1734, 0x10ac, "FSC AMILO Xi 1526", ALC880_FIXUP_F1734),
        SND_PCI_QUIRK(0x1734, 0x10b0, "FSC Amilo Pi1556", ALC880_FIXUP_FUJITSU),
@@ -4188,6 +4188,24 @@ static void alc_fixup_disable_aamix(struct hda_codec *codec,
        }
 }
 
+/* fixup for Thinkpad docks: add dock pins, avoid HP parser fixup */
+static void alc_fixup_tpt440_dock(struct hda_codec *codec,
+                                 const struct hda_fixup *fix, int action)
+{
+       static const struct hda_pintbl pincfgs[] = {
+               { 0x16, 0x21211010 }, /* dock headphone */
+               { 0x19, 0x21a11010 }, /* dock mic */
+               { }
+       };
+       struct alc_spec *spec = codec->spec;
+
+       if (action == HDA_FIXUP_ACT_PRE_PROBE) {
+               spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
+               codec->power_save_node = 0; /* avoid click noises */
+               snd_hda_apply_pincfgs(codec, pincfgs);
+       }
+}
+
 static void alc_shutup_dell_xps13(struct hda_codec *codec)
 {
        struct alc_spec *spec = codec->spec;
@@ -4562,7 +4580,6 @@ enum {
        ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC,
        ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
        ALC292_FIXUP_TPT440_DOCK,
-       ALC292_FIXUP_TPT440_DOCK2,
        ALC283_FIXUP_BXBT2807_MIC,
        ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED,
        ALC282_FIXUP_ASPIRE_V5_PINS,
@@ -5029,17 +5046,7 @@ static const struct hda_fixup alc269_fixups[] = {
        },
        [ALC292_FIXUP_TPT440_DOCK] = {
                .type = HDA_FIXUP_FUNC,
-               .v.func = alc269_fixup_pincfg_no_hp_to_lineout,
-               .chained = true,
-               .chain_id = ALC292_FIXUP_TPT440_DOCK2
-       },
-       [ALC292_FIXUP_TPT440_DOCK2] = {
-               .type = HDA_FIXUP_PINS,
-               .v.pins = (const struct hda_pintbl[]) {
-                       { 0x16, 0x21211010 }, /* dock headphone */
-                       { 0x19, 0x21a11010 }, /* dock mic */
-                       { }
-               },
+               .v.func = alc_fixup_tpt440_dock,
                .chained = true,
                .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
        },
@@ -5189,8 +5196,11 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
        SND_PCI_QUIRK(0x1028, 0x06c7, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
-       SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
        SND_PCI_QUIRK(0x1028, 0x06db, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
+       SND_PCI_QUIRK(0x1028, 0x06dd, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
+       SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
+       SND_PCI_QUIRK(0x1028, 0x06df, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
+       SND_PCI_QUIRK(0x1028, 0x06e0, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
        SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),
@@ -5389,400 +5399,202 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
        {}
 };
 
-#define ALC255_STANDARD_PINS \
-       {0x18, 0x411111f0}, \
-       {0x19, 0x411111f0}, \
-       {0x1a, 0x411111f0}, \
-       {0x1b, 0x411111f0}, \
-       {0x1e, 0x411111f0}
-
 #define ALC256_STANDARD_PINS \
        {0x12, 0x90a60140}, \
        {0x14, 0x90170110}, \
-       {0x19, 0x411111f0}, \
-       {0x1a, 0x411111f0}, \
-       {0x1b, 0x411111f0}, \
        {0x21, 0x02211020}
 
 #define ALC282_STANDARD_PINS \
-       {0x14, 0x90170110}, \
-       {0x18, 0x411111f0}, \
-       {0x1a, 0x411111f0}, \
-       {0x1b, 0x411111f0}, \
-       {0x1e, 0x411111f0}
-
-#define ALC288_STANDARD_PINS \
-       {0x17, 0x411111f0}, \
-       {0x18, 0x411111f0}, \
-       {0x19, 0x411111f0}, \
-       {0x1a, 0x411111f0}, \
-       {0x1e, 0x411111f0}
+       {0x14, 0x90170110}
 
 #define ALC290_STANDARD_PINS \
-       {0x12, 0x99a30130}, \
-       {0x13, 0x40000000}, \
-       {0x16, 0x411111f0}, \
-       {0x17, 0x411111f0}, \
-       {0x19, 0x411111f0}, \
-       {0x1b, 0x411111f0}, \
-       {0x1e, 0x411111f0}
+       {0x12, 0x99a30130}
 
 #define ALC292_STANDARD_PINS \
        {0x14, 0x90170110}, \
-       {0x15, 0x0221401f}, \
-       {0x1a, 0x411111f0}, \
-       {0x1b, 0x411111f0}, \
-       {0x1d, 0x40700001}
+       {0x15, 0x0221401f}
 
 #define ALC298_STANDARD_PINS \
-       {0x18, 0x411111f0}, \
-       {0x19, 0x411111f0}, \
-       {0x1a, 0x411111f0}, \
-       {0x1e, 0x411111f0}, \
-       {0x1f, 0x411111f0}
+       {0x12, 0x90a60130}, \
+       {0x21, 0x03211020}
 
 static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
-               {0x12, 0x40300000},
                {0x14, 0x90170110},
-               {0x17, 0x411111f0},
-               {0x1d, 0x40538029},
                {0x21, 0x02211020}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60140},
                {0x14, 0x90170110},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211020}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60160},
                {0x14, 0x90170120},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211030}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               {0x12, 0x40000000},
                {0x14, 0x90170130},
-               {0x17, 0x411111f0},
-               {0x18, 0x411111f0},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
                {0x1b, 0x01014020},
-               {0x1d, 0x4054c029},
-               {0x1e, 0x411111f0},
                {0x21, 0x0221103f}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               {0x12, 0x40000000},
                {0x14, 0x90170150},
-               {0x17, 0x411111f0},
-               {0x18, 0x411111f0},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
                {0x1b, 0x02011020},
-               {0x1d, 0x4054c029},
-               {0x1e, 0x411111f0},
                {0x21, 0x0221105f}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               {0x12, 0x40000000},
                {0x14, 0x90170110},
-               {0x17, 0x411111f0},
-               {0x18, 0x411111f0},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
                {0x1b, 0x01014020},
-               {0x1d, 0x4054c029},
-               {0x1e, 0x411111f0},
                {0x21, 0x0221101f}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
                {0x12, 0x90a60160},
                {0x14, 0x90170120},
                {0x17, 0x90170140},
-               {0x18, 0x40000000},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
-               {0x1b, 0x411111f0},
-               {0x1d, 0x41163b05},
-               {0x1e, 0x411111f0},
                {0x21, 0x0321102f}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60160},
                {0x14, 0x90170130},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211040}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60160},
                {0x14, 0x90170140},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211050}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60170},
                {0x14, 0x90170120},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211030}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60170},
                {0x14, 0x90170130},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211040}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60170},
                {0x14, 0x90170140},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211050}),
        SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell Inspiron 5548", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60180},
                {0x14, 0x90170130},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211040}),
        SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC255_STANDARD_PINS,
                {0x12, 0x90a60160},
                {0x14, 0x90170120},
-               {0x17, 0x40000000},
-               {0x1d, 0x40700001},
                {0x21, 0x02211030}),
        SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC256_STANDARD_PINS,
-               {0x13, 0x40000000},
-               {0x1d, 0x40700001},
-               {0x1e, 0x411111f0}),
-       SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC256_STANDARD_PINS,
-               {0x13, 0x411111f0},
-               {0x1d, 0x40700001},
-               {0x1e, 0x411111f0}),
-       SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC256_STANDARD_PINS,
-               {0x13, 0x411111f0},
-               {0x1d, 0x4077992d},
-               {0x1e, 0x411111ff}),
+               ALC256_STANDARD_PINS),
        SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC280_FIXUP_HP_GPIO4,
                {0x12, 0x90a60130},
-               {0x13, 0x40000000},
                {0x14, 0x90170110},
                {0x15, 0x0421101f},
-               {0x16, 0x411111f0},
-               {0x17, 0x411111f0},
-               {0x18, 0x411111f0},
-               {0x19, 0x411111f0},
-               {0x1a, 0x04a11020},
-               {0x1b, 0x411111f0},
-               {0x1d, 0x40748605},
-               {0x1e, 0x411111f0}),
+               {0x1a, 0x04a11020}),
        SND_HDA_PIN_QUIRK(0x10ec0280, 0x103c, "HP", ALC269_FIXUP_HP_GPIO_MIC1_LED,
                {0x12, 0x90a60140},
-               {0x13, 0x40000000},
                {0x14, 0x90170110},
                {0x15, 0x0421101f},
-               {0x16, 0x411111f0},
-               {0x17, 0x411111f0},
                {0x18, 0x02811030},
-               {0x19, 0x411111f0},
                {0x1a, 0x04a1103f},
-               {0x1b, 0x02011020},
-               {0x1d, 0x40700001},
-               {0x1e, 0x411111f0}),
+               {0x1b, 0x02011020}),
        SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP 15 Touchsmart", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC282_STANDARD_PINS,
                {0x12, 0x99a30130},
-               {0x17, 0x40000000},
                {0x19, 0x03a11020},
-               {0x1d, 0x40f41905},
                {0x21, 0x0321101f}),
        SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC282_STANDARD_PINS,
                {0x12, 0x99a30130},
-               {0x17, 0x40020008},
                {0x19, 0x03a11020},
-               {0x1d, 0x40e00001},
                {0x21, 0x03211040}),
        SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC282_STANDARD_PINS,
                {0x12, 0x99a30130},
-               {0x17, 0x40000000},
-               {0x19, 0x03a11030},
-               {0x1d, 0x40e00001},
-               {0x21, 0x03211020}),
-       SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
-               ALC282_STANDARD_PINS,
-               {0x12, 0x99a30130},
-               {0x17, 0x40000000},
                {0x19, 0x03a11030},
-               {0x1d, 0x40f00001},
                {0x21, 0x03211020}),
        SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC282_STANDARD_PINS,
                {0x12, 0x99a30130},
-               {0x17, 0x40000000},
                {0x19, 0x04a11020},
-               {0x1d, 0x40f00001},
                {0x21, 0x0421101f}),
-       SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
-               ALC282_STANDARD_PINS,
-               {0x12, 0x99a30130},
-               {0x17, 0x40000000},
-               {0x19, 0x03a11030},
-               {0x1d, 0x40f00001},
-               {0x21, 0x04211020}),
        SND_HDA_PIN_QUIRK(0x10ec0282, 0x103c, "HP", ALC269_FIXUP_HP_LINE1_MIC1_LED,
                ALC282_STANDARD_PINS,
                {0x12, 0x90a60140},
-               {0x17, 0x40000000},
                {0x19, 0x04a11030},
-               {0x1d, 0x40f00001},
                {0x21, 0x04211020}),
        SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
                ALC282_STANDARD_PINS,
                {0x12, 0x90a60130},
-               {0x17, 0x40020008},
-               {0x19, 0x411111f0},
-               {0x1d, 0x40e00001},
                {0x21, 0x0321101f}),
        SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
                {0x12, 0x90a60160},
                {0x14, 0x90170120},
-               {0x17, 0x40000000},
-               {0x18, 0x411111f0},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
-               {0x1b, 0x411111f0},
-               {0x1d, 0x40700001},
-               {0x1e, 0x411111f0},
                {0x21, 0x02211030}),
        SND_HDA_PIN_QUIRK(0x10ec0283, 0x1028, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE,
                ALC282_STANDARD_PINS,
                {0x12, 0x90a60130},
-               {0x17, 0x40020008},
                {0x19, 0x03a11020},
-               {0x1d, 0x40e00001},
                {0x21, 0x0321101f}),
        SND_HDA_PIN_QUIRK(0x10ec0288, 0x1028, "Dell", ALC288_FIXUP_DELL_XPS_13_GPIO6,
-               ALC288_STANDARD_PINS,
                {0x12, 0x90a60120},
-               {0x13, 0x40000000},
                {0x14, 0x90170110},
-               {0x1d, 0x4076832d},
                {0x21, 0x0321101f}),
        SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC290_STANDARD_PINS,
-               {0x14, 0x411111f0},
                {0x15, 0x04211040},
                {0x18, 0x90170112},
-               {0x1a, 0x04a11020},
-               {0x1d, 0x4075812d}),
+               {0x1a, 0x04a11020}),
        SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC290_STANDARD_PINS,
-               {0x14, 0x411111f0},
                {0x15, 0x04211040},
                {0x18, 0x90170110},
-               {0x1a, 0x04a11020},
-               {0x1d, 0x4075812d}),
+               {0x1a, 0x04a11020}),
        SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC290_STANDARD_PINS,
-               {0x14, 0x411111f0},
                {0x15, 0x0421101f},
-               {0x18, 0x411111f0},
-               {0x1a, 0x04a11020},
-               {0x1d, 0x4075812d}),
+               {0x1a, 0x04a11020}),
        SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC290_STANDARD_PINS,
-               {0x14, 0x411111f0},
                {0x15, 0x04211020},
-               {0x18, 0x411111f0},
-               {0x1a, 0x04a11040},
-               {0x1d, 0x4076a12d}),
+               {0x1a, 0x04a11040}),
        SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC290_STANDARD_PINS,
                {0x14, 0x90170110},
                {0x15, 0x04211020},
-               {0x18, 0x411111f0},
-               {0x1a, 0x04a11040},
-               {0x1d, 0x4076a12d}),
+               {0x1a, 0x04a11040}),
        SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC290_STANDARD_PINS,
                {0x14, 0x90170110},
                {0x15, 0x04211020},
-               {0x18, 0x411111f0},
-               {0x1a, 0x04a11020},
-               {0x1d, 0x4076a12d}),
+               {0x1a, 0x04a11020}),
        SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1,
                ALC290_STANDARD_PINS,
                {0x14, 0x90170110},
                {0x15, 0x0421101f},
-               {0x18, 0x411111f0},
-               {0x1a, 0x04a11020},
-               {0x1d, 0x4075812d}),
+               {0x1a, 0x04a11020}),
        SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE,
                ALC292_STANDARD_PINS,
                {0x12, 0x90a60140},
-               {0x13, 0x411111f0},
                {0x16, 0x01014020},
-               {0x18, 0x411111f0},
-               {0x19, 0x01a19030},
-               {0x1e, 0x411111f0}),
+               {0x19, 0x01a19030}),
        SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE,
                ALC292_STANDARD_PINS,
                {0x12, 0x90a60140},
-               {0x13, 0x411111f0},
                {0x16, 0x01014020},
                {0x18, 0x02a19031},
-               {0x19, 0x01a1903e},
-               {0x1e, 0x411111f0}),
+               {0x19, 0x01a1903e}),
        SND_HDA_PIN_QUIRK(0x10ec0292, 0x1028, "Dell", ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
                ALC292_STANDARD_PINS,
-               {0x12, 0x90a60140},
-               {0x13, 0x411111f0},
-               {0x16, 0x411111f0},
-               {0x18, 0x411111f0},
-               {0x19, 0x411111f0},
-               {0x1e, 0x411111f0}),
+               {0x12, 0x90a60140}),
        SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
                ALC292_STANDARD_PINS,
-               {0x12, 0x40000000},
                {0x13, 0x90a60140},
                {0x16, 0x21014020},
-               {0x18, 0x411111f0},
-               {0x19, 0x21a19030},
-               {0x1e, 0x411111f0}),
+               {0x19, 0x21a19030}),
        SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
                ALC292_STANDARD_PINS,
-               {0x12, 0x40000000},
-               {0x13, 0x90a60140},
-               {0x16, 0x411111f0},
-               {0x18, 0x411111f0},
-               {0x19, 0x411111f0},
-               {0x1e, 0x411111f0}),
-       SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
-               ALC292_STANDARD_PINS,
-               {0x12, 0x40000000},
-               {0x13, 0x90a60140},
-               {0x16, 0x21014020},
-               {0x18, 0x411111f0},
-               {0x19, 0x21a19030},
-               {0x1e, 0x411111ff}),
+               {0x13, 0x90a60140}),
        SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
                ALC298_STANDARD_PINS,
-               {0x12, 0x90a60130},
-               {0x13, 0x40000000},
-               {0x14, 0x411111f0},
-               {0x17, 0x90170140},
-               {0x1d, 0x4068a36d},
-               {0x21, 0x03211020}),
+               {0x17, 0x90170110}),
+       SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
+               ALC298_STANDARD_PINS,
+               {0x17, 0x90170140}),
+       SND_HDA_PIN_QUIRK(0x10ec0298, 0x1028, "Dell", ALC298_FIXUP_DELL1_MIC_NO_PRESENCE,
+               ALC298_STANDARD_PINS,
+               {0x17, 0x90170150}),
        {}
 };
 
@@ -6579,6 +6391,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
        SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x05fe, "Dell XPS 15", ALC668_FIXUP_DELL_XPS13),
        SND_PCI_QUIRK(0x1028, 0x060a, "Dell XPS 13", ALC668_FIXUP_DELL_XPS13),
+       SND_PCI_QUIRK(0x1028, 0x060d, "Dell M3800", ALC668_FIXUP_DELL_XPS13),
        SND_PCI_QUIRK(0x1028, 0x0625, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0626, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
        SND_PCI_QUIRK(0x1028, 0x0696, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE),
@@ -6675,77 +6488,33 @@ static const struct hda_model_fixup alc662_fixup_models[] = {
 
 static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = {
        SND_HDA_PIN_QUIRK(0x10ec0662, 0x1028, "Dell", ALC662_FIXUP_DELL_MIC_NO_PRESENCE,
-               {0x12, 0x4004c000},
                {0x14, 0x01014010},
-               {0x15, 0x411111f0},
-               {0x16, 0x411111f0},
                {0x18, 0x01a19020},
-               {0x19, 0x411111f0},
                {0x1a, 0x0181302f},
-               {0x1b, 0x0221401f},
-               {0x1c, 0x411111f0},
-               {0x1d, 0x4054c601},
-               {0x1e, 0x411111f0}),
+               {0x1b, 0x0221401f}),
        SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE,
                {0x12, 0x99a30130},
                {0x14, 0x90170110},
                {0x15, 0x0321101f},
-               {0x16, 0x03011020},
-               {0x18, 0x40000008},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
-               {0x1b, 0x411111f0},
-               {0x1d, 0x41000001},
-               {0x1e, 0x411111f0},
-               {0x1f, 0x411111f0}),
+               {0x16, 0x03011020}),
        SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE,
                {0x12, 0x99a30140},
                {0x14, 0x90170110},
                {0x15, 0x0321101f},
-               {0x16, 0x03011020},
-               {0x18, 0x40000008},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
-               {0x1b, 0x411111f0},
-               {0x1d, 0x41000001},
-               {0x1e, 0x411111f0},
-               {0x1f, 0x411111f0}),
+               {0x16, 0x03011020}),
        SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE,
                {0x12, 0x99a30150},
                {0x14, 0x90170110},
                {0x15, 0x0321101f},
-               {0x16, 0x03011020},
-               {0x18, 0x40000008},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
-               {0x1b, 0x411111f0},
-               {0x1d, 0x41000001},
-               {0x1e, 0x411111f0},
-               {0x1f, 0x411111f0}),
+               {0x16, 0x03011020}),
        SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell", ALC668_FIXUP_AUTO_MUTE,
-               {0x12, 0x411111f0},
                {0x14, 0x90170110},
                {0x15, 0x0321101f},
-               {0x16, 0x03011020},
-               {0x18, 0x40000008},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
-               {0x1b, 0x411111f0},
-               {0x1d, 0x41000001},
-               {0x1e, 0x411111f0},
-               {0x1f, 0x411111f0}),
+               {0x16, 0x03011020}),
        SND_HDA_PIN_QUIRK(0x10ec0668, 0x1028, "Dell XPS 15", ALC668_FIXUP_AUTO_MUTE,
                {0x12, 0x90a60130},
                {0x14, 0x90170110},
-               {0x15, 0x0321101f},
-               {0x16, 0x40000000},
-               {0x18, 0x411111f0},
-               {0x19, 0x411111f0},
-               {0x1a, 0x411111f0},
-               {0x1b, 0x411111f0},
-               {0x1d, 0x40d6832d},
-               {0x1e, 0x411111f0},
-               {0x1f, 0x411111f0}),
+               {0x15, 0x0321101f}),
        {}
 };