diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 1d07e8fa2433..c4bde7108328 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -4201,8 +4201,26 @@ enum { | |||
4201 | PINFIX_PB_M5210, | 4201 | PINFIX_PB_M5210, |
4202 | PINFIX_ACER_ASPIRE_7736, | 4202 | PINFIX_ACER_ASPIRE_7736, |
4203 | PINFIX_ASUS_W90V, | 4203 | PINFIX_ASUS_W90V, |
4204 | ALC889_FIXUP_DAC_ROUTE, | ||
4204 | }; | 4205 | }; |
4205 | 4206 | ||
4207 | /* Fix the connection of some pins for ALC889: | ||
4208 | * At least, Acer Aspire 5935 shows the connections to DAC3/4 don't | ||
4209 | * work correctly (bko#42740) | ||
4210 | */ | ||
4211 | static void alc889_fixup_dac_route(struct hda_codec *codec, | ||
4212 | const struct alc_fixup *fix, int action) | ||
4213 | { | ||
4214 | if (action == ALC_FIXUP_ACT_PRE_PROBE) { | ||
4215 | hda_nid_t conn1[2] = { 0x0c, 0x0d }; | ||
4216 | hda_nid_t conn2[2] = { 0x0e, 0x0f }; | ||
4217 | snd_hda_override_conn_list(codec, 0x14, 2, conn1); | ||
4218 | snd_hda_override_conn_list(codec, 0x15, 2, conn1); | ||
4219 | snd_hda_override_conn_list(codec, 0x18, 2, conn2); | ||
4220 | snd_hda_override_conn_list(codec, 0x1a, 2, conn2); | ||
4221 | } | ||
4222 | } | ||
4223 | |||
4206 | static const struct alc_fixup alc882_fixups[] = { | 4224 | static const struct alc_fixup alc882_fixups[] = { |
4207 | [PINFIX_ABIT_AW9D_MAX] = { | 4225 | [PINFIX_ABIT_AW9D_MAX] = { |
4208 | .type = ALC_FIXUP_PINS, | 4226 | .type = ALC_FIXUP_PINS, |
@@ -4239,10 +4257,15 @@ static const struct alc_fixup alc882_fixups[] = { | |||
4239 | { } | 4257 | { } |
4240 | } | 4258 | } |
4241 | }, | 4259 | }, |
4260 | [ALC889_FIXUP_DAC_ROUTE] = { | ||
4261 | .type = ALC_FIXUP_FUNC, | ||
4262 | .v.func = alc889_fixup_dac_route, | ||
4263 | }, | ||
4242 | }; | 4264 | }; |
4243 | 4265 | ||
4244 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { | 4266 | static const struct snd_pci_quirk alc882_fixup_tbl[] = { |
4245 | SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", PINFIX_PB_M5210), | 4267 | SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", PINFIX_PB_M5210), |
4268 | SND_PCI_QUIRK(0x1025, 0x0259, "Acer Aspire 5935", ALC889_FIXUP_DAC_ROUTE), | ||
4246 | SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", PINFIX_ASUS_W90V), | 4269 | SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", PINFIX_ASUS_W90V), |
4247 | SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), | 4270 | SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), |
4248 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), | 4271 | SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), |