|
@@ -14815,6 +14815,15 @@ static int alc269_resume(struct hda_codec *codec)
|
|
|
}
|
|
|
#endif /* SND_HDA_NEEDS_RESUME */
|
|
|
|
|
|
+static void alc269_fixup_hweq(struct hda_codec *codec,
|
|
|
+ const struct alc_fixup *fix, int pre_init)
|
|
|
+{
|
|
|
+ int coef;
|
|
|
+
|
|
|
+ coef = alc_read_coef_idx(codec, 0x1e);
|
|
|
+ alc_write_coef_idx(codec, 0x1e, coef | 0x80);
|
|
|
+}
|
|
|
+
|
|
|
enum {
|
|
|
ALC269_FIXUP_SONY_VAIO,
|
|
|
ALC275_FIX_SONY_VAIO_GPIO2,
|
|
@@ -14822,6 +14831,7 @@ enum {
|
|
|
ALC269_FIXUP_SKU_IGNORE,
|
|
|
ALC269_FIXUP_ASUS_G73JW,
|
|
|
ALC269_FIXUP_LENOVO_EAPD,
|
|
|
+ ALC275_FIXUP_SONY_HWEQ,
|
|
|
};
|
|
|
|
|
|
static const struct alc_fixup alc269_fixups[] = {
|
|
@@ -14862,12 +14872,22 @@ static const struct alc_fixup alc269_fixups[] = {
|
|
|
{}
|
|
|
}
|
|
|
},
|
|
|
+ [ALC275_FIXUP_SONY_HWEQ] = {
|
|
|
+ .func = alc269_fixup_hweq,
|
|
|
+ .verbs = (const struct hda_verb[]) {
|
|
|
+ {0x01, AC_VERB_SET_GPIO_MASK, 0x04},
|
|
|
+ {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x04},
|
|
|
+ {0x01, AC_VERB_SET_GPIO_DATA, 0x00},
|
|
|
+ {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREFGRD},
|
|
|
+ { }
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
static struct snd_pci_quirk alc269_fixup_tbl[] = {
|
|
|
SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIX_SONY_VAIO_GPIO2),
|
|
|
- SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIX_SONY_VAIO_GPIO2),
|
|
|
- SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIX_SONY_VAIO_GPIO2),
|
|
|
+ SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
|
|
|
+ SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
|
|
|
SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO),
|
|
|
SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z),
|
|
|
SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE),
|