|
@@ -3130,6 +3130,8 @@ static void alc256_init(struct hda_codec *codec)
|
|
|
|
|
|
alc_update_coef_idx(codec, 0x46, 3 << 12, 0);
|
|
|
alc_update_coefex_idx(codec, 0x57, 0x04, 0x0007, 0x4); /* Hight power */
|
|
|
+ alc_update_coefex_idx(codec, 0x53, 0x02, 0x8000, 1 << 15); /* Clear bit */
|
|
|
+ alc_update_coefex_idx(codec, 0x53, 0x02, 0x8000, 0 << 15);
|
|
|
}
|
|
|
|
|
|
static void alc256_shutup(struct hda_codec *codec)
|
|
@@ -5501,6 +5503,7 @@ enum {
|
|
|
ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
|
|
|
ALC298_FIXUP_TPT470_DOCK,
|
|
|
ALC255_FIXUP_DUMMY_LINEOUT_VERB,
|
|
|
+ ALC255_FIXUP_DELL_HEADSET_MIC,
|
|
|
};
|
|
|
|
|
|
static const struct hda_fixup alc269_fixups[] = {
|
|
@@ -6361,6 +6364,13 @@ static const struct hda_fixup alc269_fixups[] = {
|
|
|
.chained = true,
|
|
|
.chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE
|
|
|
},
|
|
|
+ [ALC255_FIXUP_DELL_HEADSET_MIC] = {
|
|
|
+ .type = HDA_FIXUP_PINS,
|
|
|
+ .v.pins = (const struct hda_pintbl[]) {
|
|
|
+ { 0x19, 0x01a1913c }, /* use as headset mic, without its own jack detect */
|
|
|
+ { }
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|
@@ -6415,6 +6425,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|
|
SND_PCI_QUIRK(0x1028, 0x082a, "Dell XPS 13 9360", ALC256_FIXUP_DELL_XPS_13_HEADPHONE_NOISE),
|
|
|
SND_PCI_QUIRK(0x1028, 0x084b, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
|
|
|
SND_PCI_QUIRK(0x1028, 0x084e, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB),
|
|
|
+ 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, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
|
|
SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
|
|
@@ -7158,6 +7170,8 @@ static int patch_alc269(struct hda_codec *codec)
|
|
|
break;
|
|
|
case 0x10ec0257:
|
|
|
spec->codec_variant = ALC269_TYPE_ALC257;
|
|
|
+ spec->shutup = alc256_shutup;
|
|
|
+ spec->init_hook = alc256_init;
|
|
|
spec->gen.mixer_nid = 0;
|
|
|
break;
|
|
|
case 0x10ec0215:
|