diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-11-07 01:29:30 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-11-07 01:35:31 -0500 |
commit | 487a588d09db0d6508261867df208d8bdc718251 (patch) | |
tree | 558fc40c8577800e4dd4c8dd5cff232d018ee517 /sound/pci/hda/patch_realtek.c | |
parent | 8f42d7698751a45cd9f7134a5da49bc5b6206179 (diff) |
ALSA: hda - Add pincfg fixup for ASUS W5A
BIOS on ASUS W5A laptop with ALC880 codec doesn't provide any pin
configurations, so we have to set up all pins manually.
Reported-and-tested-by: nb <nb@dagami.org>
Cc: <stable@vger.kernel.org> [v3.4+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 215db601267d..44f12104e8a6 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -1045,6 +1045,7 @@ enum { | |||
1045 | ALC880_FIXUP_UNIWILL, | 1045 | ALC880_FIXUP_UNIWILL, |
1046 | ALC880_FIXUP_UNIWILL_DIG, | 1046 | ALC880_FIXUP_UNIWILL_DIG, |
1047 | ALC880_FIXUP_Z71V, | 1047 | ALC880_FIXUP_Z71V, |
1048 | ALC880_FIXUP_ASUS_W5A, | ||
1048 | ALC880_FIXUP_3ST_BASE, | 1049 | ALC880_FIXUP_3ST_BASE, |
1049 | ALC880_FIXUP_3ST, | 1050 | ALC880_FIXUP_3ST, |
1050 | ALC880_FIXUP_3ST_DIG, | 1051 | ALC880_FIXUP_3ST_DIG, |
@@ -1215,6 +1216,26 @@ static const struct hda_fixup alc880_fixups[] = { | |||
1215 | { } | 1216 | { } |
1216 | } | 1217 | } |
1217 | }, | 1218 | }, |
1219 | [ALC880_FIXUP_ASUS_W5A] = { | ||
1220 | .type = HDA_FIXUP_PINS, | ||
1221 | .v.pins = (const struct hda_pintbl[]) { | ||
1222 | /* set up the whole pins as BIOS is utterly broken */ | ||
1223 | { 0x14, 0x0121411f }, /* HP */ | ||
1224 | { 0x15, 0x411111f0 }, /* N/A */ | ||
1225 | { 0x16, 0x411111f0 }, /* N/A */ | ||
1226 | { 0x17, 0x411111f0 }, /* N/A */ | ||
1227 | { 0x18, 0x90a60160 }, /* mic */ | ||
1228 | { 0x19, 0x411111f0 }, /* N/A */ | ||
1229 | { 0x1a, 0x411111f0 }, /* N/A */ | ||
1230 | { 0x1b, 0x411111f0 }, /* N/A */ | ||
1231 | { 0x1c, 0x411111f0 }, /* N/A */ | ||
1232 | { 0x1d, 0x411111f0 }, /* N/A */ | ||
1233 | { 0x1e, 0xb743111e }, /* SPDIF out */ | ||
1234 | { } | ||
1235 | }, | ||
1236 | .chained = true, | ||
1237 | .chain_id = ALC880_FIXUP_GPIO1, | ||
1238 | }, | ||
1218 | [ALC880_FIXUP_3ST_BASE] = { | 1239 | [ALC880_FIXUP_3ST_BASE] = { |
1219 | .type = HDA_FIXUP_PINS, | 1240 | .type = HDA_FIXUP_PINS, |
1220 | .v.pins = (const struct hda_pintbl[]) { | 1241 | .v.pins = (const struct hda_pintbl[]) { |
@@ -1336,6 +1357,7 @@ static const struct hda_fixup alc880_fixups[] = { | |||
1336 | 1357 | ||
1337 | static const struct snd_pci_quirk alc880_fixup_tbl[] = { | 1358 | static const struct snd_pci_quirk alc880_fixup_tbl[] = { |
1338 | SND_PCI_QUIRK(0x1019, 0x0f69, "Coeus G610P", ALC880_FIXUP_W810), | 1359 | SND_PCI_QUIRK(0x1019, 0x0f69, "Coeus G610P", ALC880_FIXUP_W810), |
1360 | SND_PCI_QUIRK(0x1043, 0x10c3, "ASUS W5A", ALC880_FIXUP_ASUS_W5A), | ||
1339 | SND_PCI_QUIRK(0x1043, 0x1964, "ASUS Z71V", ALC880_FIXUP_Z71V), | 1361 | SND_PCI_QUIRK(0x1043, 0x1964, "ASUS Z71V", ALC880_FIXUP_Z71V), |
1340 | SND_PCI_QUIRK_VENDOR(0x1043, "ASUS", ALC880_FIXUP_GPIO1), | 1362 | SND_PCI_QUIRK_VENDOR(0x1043, "ASUS", ALC880_FIXUP_GPIO1), |
1341 | SND_PCI_QUIRK(0x1558, 0x5401, "Clevo GPIO2", ALC880_FIXUP_GPIO2), | 1363 | SND_PCI_QUIRK(0x1558, 0x5401, "Clevo GPIO2", ALC880_FIXUP_GPIO2), |