aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorKailang Yang <kailang@realtek.com>2011-01-12 03:01:23 -0500
committerTakashi Iwai <tiwai@suse.de>2011-01-12 03:01:23 -0500
commit1a99d4a46c4d08da3418a2079b78ec5daa2a6408 (patch)
tree3a93688a6fd37f16278b9b955a2270707423aaf6 /sound/pci
parent357f915ece53aa4c8759087888346145848ea753 (diff)
ALSA: hda - Fix ALC275 enable hardware EQ for SONY VAIO
SONY VAIO ALC275 default BIOS verb set the hardware EQ to disable. Enable it when driver is loading. Signed-off-by: Kailang Yang <kailang@realtek.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 114d3d0f56aa..f44d0e355835 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
14818static 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
14818enum { 14827enum {
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
14827static const struct alc_fixup alc269_fixups[] = { 14837static 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
14867static struct snd_pci_quirk alc269_fixup_tbl[] = { 14887static 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),