diff options
Diffstat (limited to 'sound/pci/hda/patch_realtek.c')
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 389a28a21fa9..3647baa9bfed 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -4441,12 +4441,20 @@ static void alc889_fixup_dac_route(struct hda_codec *codec, | |||
4441 | const struct alc_fixup *fix, int action) | 4441 | const struct alc_fixup *fix, int action) |
4442 | { | 4442 | { |
4443 | if (action == ALC_FIXUP_ACT_PRE_PROBE) { | 4443 | if (action == ALC_FIXUP_ACT_PRE_PROBE) { |
4444 | /* fake the connections during parsing the tree */ | ||
4444 | hda_nid_t conn1[2] = { 0x0c, 0x0d }; | 4445 | hda_nid_t conn1[2] = { 0x0c, 0x0d }; |
4445 | hda_nid_t conn2[2] = { 0x0e, 0x0f }; | 4446 | hda_nid_t conn2[2] = { 0x0e, 0x0f }; |
4446 | snd_hda_override_conn_list(codec, 0x14, 2, conn1); | 4447 | snd_hda_override_conn_list(codec, 0x14, 2, conn1); |
4447 | snd_hda_override_conn_list(codec, 0x15, 2, conn1); | 4448 | snd_hda_override_conn_list(codec, 0x15, 2, conn1); |
4448 | snd_hda_override_conn_list(codec, 0x18, 2, conn2); | 4449 | snd_hda_override_conn_list(codec, 0x18, 2, conn2); |
4449 | snd_hda_override_conn_list(codec, 0x1a, 2, conn2); | 4450 | snd_hda_override_conn_list(codec, 0x1a, 2, conn2); |
4451 | } else if (action == ALC_FIXUP_ACT_PROBE) { | ||
4452 | /* restore the connections */ | ||
4453 | hda_nid_t conn[5] = { 0x0c, 0x0d, 0x0e, 0x0f, 0x26 }; | ||
4454 | snd_hda_override_conn_list(codec, 0x14, 5, conn); | ||
4455 | snd_hda_override_conn_list(codec, 0x15, 5, conn); | ||
4456 | snd_hda_override_conn_list(codec, 0x18, 5, conn); | ||
4457 | snd_hda_override_conn_list(codec, 0x1a, 5, conn); | ||
4450 | } | 4458 | } |
4451 | } | 4459 | } |
4452 | 4460 | ||