diff options
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 114d3d0f56a..f44d0e35583 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
| @@ -14815,6 +14815,15 @@ static int alc269_resume(struct hda_codec *codec) | |||
| 14815 | } | 14815 | } |
| 14816 | #endif /* SND_HDA_NEEDS_RESUME */ | 14816 | #endif /* SND_HDA_NEEDS_RESUME */ |
| 14817 | 14817 | ||
| 14818 | static void alc269_fixup_hweq(struct hda_codec *codec, | ||
| 14819 | const struct alc_fixup *fix, int pre_init) | ||
| 14820 | { | ||
| 14821 | int coef; | ||
| 14822 | |||
| 14823 | coef = alc_read_coef_idx(codec, 0x1e); | ||
| 14824 | alc_write_coef_idx(codec, 0x1e, coef | 0x80); | ||
| 14825 | } | ||
| 14826 | |||
| 14818 | enum { | 14827 | enum { |
| 14819 | ALC269_FIXUP_SONY_VAIO, | 14828 | ALC269_FIXUP_SONY_VAIO, |
| 14820 | ALC275_FIX_SONY_VAIO_GPIO2, | 14829 | ALC275_FIX_SONY_VAIO_GPIO2, |
| @@ -14822,6 +14831,7 @@ enum { | |||
| 14822 | ALC269_FIXUP_SKU_IGNORE, | 14831 | ALC269_FIXUP_SKU_IGNORE, |
| 14823 | ALC269_FIXUP_ASUS_G73JW, | 14832 | ALC269_FIXUP_ASUS_G73JW, |
| 14824 | ALC269_FIXUP_LENOVO_EAPD, | 14833 | ALC269_FIXUP_LENOVO_EAPD, |
| 14834 | ALC275_FIXUP_SONY_HWEQ, | ||
| 14825 | }; | 14835 | }; |
| 14826 | 14836 | ||
| 14827 | static const struct alc_fixup alc269_fixups[] = { | 14837 | static const struct alc_fixup alc269_fixups[] = { |
| @@ -14862,12 +14872,22 @@ static const struct alc_fixup alc269_fixups[] = { | |||
| 14862 | {} | 14872 | {} |
| 14863 | } | 14873 | } |
| 14864 | }, | 14874 | }, |
| 14875 | [ALC275_FIXUP_SONY_HWEQ] = { | ||
| 14876 | .func = alc269_fixup_hweq, | ||
| 14877 | .verbs = (const struct hda_verb[]) { | ||
| 14878 | {0x01, AC_VERB_SET_GPIO_MASK, 0x04}, | ||
| 14879 | {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x04}, | ||
| 14880 | {0x01, AC_VERB_SET_GPIO_DATA, 0x00}, | ||
| 14881 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREFGRD}, | ||
| 14882 | { } | ||
| 14883 | } | ||
| 14884 | } | ||
| 14865 | }; | 14885 | }; |
| 14866 | 14886 | ||
| 14867 | static struct snd_pci_quirk alc269_fixup_tbl[] = { | 14887 | static struct snd_pci_quirk alc269_fixup_tbl[] = { |
| 14868 | SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIX_SONY_VAIO_GPIO2), | 14888 | SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIX_SONY_VAIO_GPIO2), |
| 14869 | SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIX_SONY_VAIO_GPIO2), | 14889 | SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), |
| 14870 | SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIX_SONY_VAIO_GPIO2), | 14890 | SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), |
| 14871 | SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), | 14891 | SND_PCI_QUIRK_VENDOR(0x104d, "Sony VAIO", ALC269_FIXUP_SONY_VAIO), |
| 14872 | SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), | 14892 | SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), |
| 14873 | SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), | 14893 | SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE), |
