diff options
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch')
-rw-r--r-- | recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch new file mode 100644 index 00000000..b30fe7a9 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch | |||
@@ -0,0 +1,53 @@ | |||
1 | From 8f421627d178f1346bb68c9e7b32b2bd5844ce1d Mon Sep 17 00:00:00 2001 | ||
2 | From: Takashi Iwai <tiwai@suse.de> | ||
3 | Date: Fri, 17 Feb 2012 10:12:38 +0100 | ||
4 | Subject: [PATCH 48/73] ALSA: hda/realtek - Fix surround output regression on | ||
5 | Acer Aspire 5935 | ||
6 | |||
7 | commit ef8d60fb79614a86a82720dc2402631dbcafb315 upstream. | ||
8 | |||
9 | The previous fix for the speaker on Acer Aspire 59135 introduced | ||
10 | another problem for surround outputs. It changed the connections on | ||
11 | the line-in/mic pins for limiting the routes, but it left the modified | ||
12 | connections. Thus wrong connection indices were written when set to | ||
13 | 4ch or 6ch mode. | ||
14 | |||
15 | This patch fixes it by restoring the right connections just after | ||
16 | parsing the tree but before the initialization. | ||
17 | |||
18 | Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42740 | ||
19 | |||
20 | Signed-off-by: Takashi Iwai <tiwai@suse.de> | ||
21 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
22 | --- | ||
23 | sound/pci/hda/patch_realtek.c | 8 ++++++++ | ||
24 | 1 files changed, 8 insertions(+), 0 deletions(-) | ||
25 | |||
26 | diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c | ||
27 | index ceda0ac..c4c8d78 100644 | ||
28 | --- a/sound/pci/hda/patch_realtek.c | ||
29 | +++ b/sound/pci/hda/patch_realtek.c | ||
30 | @@ -4229,12 +4229,20 @@ static void alc889_fixup_dac_route(struct hda_codec *codec, | ||
31 | const struct alc_fixup *fix, int action) | ||
32 | { | ||
33 | if (action == ALC_FIXUP_ACT_PRE_PROBE) { | ||
34 | + /* fake the connections during parsing the tree */ | ||
35 | hda_nid_t conn1[2] = { 0x0c, 0x0d }; | ||
36 | hda_nid_t conn2[2] = { 0x0e, 0x0f }; | ||
37 | snd_hda_override_conn_list(codec, 0x14, 2, conn1); | ||
38 | snd_hda_override_conn_list(codec, 0x15, 2, conn1); | ||
39 | snd_hda_override_conn_list(codec, 0x18, 2, conn2); | ||
40 | snd_hda_override_conn_list(codec, 0x1a, 2, conn2); | ||
41 | + } else if (action == ALC_FIXUP_ACT_PROBE) { | ||
42 | + /* restore the connections */ | ||
43 | + hda_nid_t conn[5] = { 0x0c, 0x0d, 0x0e, 0x0f, 0x26 }; | ||
44 | + snd_hda_override_conn_list(codec, 0x14, 5, conn); | ||
45 | + snd_hda_override_conn_list(codec, 0x15, 5, conn); | ||
46 | + snd_hda_override_conn_list(codec, 0x18, 5, conn); | ||
47 | + snd_hda_override_conn_list(codec, 0x1a, 5, conn); | ||
48 | } | ||
49 | } | ||
50 | |||
51 | -- | ||
52 | 1.7.7.4 | ||
53 | |||