1 From c50ff7c04225c945b13d410d50fde6ff6c59d7ee Mon Sep 17 00:00:00 2001
2 From: Takashi Iwai <tiwai@suse.de>
3 Date: Fri, 6 Mar 2009 09:43:58 +0100
4 Subject: ALSA: hda - Fix headphone-detect regression with multiple HP jacks
6 References: bnc#479558, bnc#482052
8 The recent changes over the DAC detection mechanism in patch_sigmatel.c
9 breaks the HP detection on the machines with multiple HP jacks.
10 It's basically because of the workaround to support the multi-channel
11 output. Since the HP detection is more important feature, disable
12 the HP-swap workaroud temporarily.
14 Reference: Novell bnc#482052
15 https://bugzilla.novell.com/show_bug.cgi?id=482052
17 Signed-off-by: Takashi Iwai <tiwai@suse.de>
20 sound/pci/hda/patch_sigmatel.c | 6 ++++--
21 1 file changed, 4 insertions(+), 2 deletions(-)
23 --- a/sound/pci/hda/patch_sigmatel.c
24 +++ b/sound/pci/hda/patch_sigmatel.c
25 @@ -1205,7 +1205,7 @@ static const char *slave_vols[] = {
26 "LFE Playback Volume",
27 "Side Playback Volume",
28 "Headphone Playback Volume",
29 - "Headphone Playback Volume",
30 + "Headphone2 Playback Volume",
31 "Speaker Playback Volume",
32 "External Speaker Playback Volume",
33 "Speaker2 Playback Volume",
34 @@ -1219,7 +1219,7 @@ static const char *slave_sws[] = {
35 "LFE Playback Switch",
36 "Side Playback Switch",
37 "Headphone Playback Switch",
38 - "Headphone Playback Switch",
39 + "Headphone2 Playback Switch",
40 "Speaker Playback Switch",
41 "External Speaker Playback Switch",
42 "Speaker2 Playback Switch",
43 @@ -3477,6 +3477,7 @@ static int stac92xx_parse_auto_config(st
44 if (! spec->autocfg.line_outs)
45 return 0; /* can't find valid pin config */
47 +#if 0 /* FIXME: temporarily disabled */
48 /* If we have no real line-out pin and multiple hp-outs, HPs should
49 * be set up as multi-channel outputs.
51 @@ -3496,6 +3497,7 @@ static int stac92xx_parse_auto_config(st
52 spec->autocfg.line_out_type = AUTO_PIN_HP_OUT;
53 spec->autocfg.hp_outs = 0;
55 +#endif /* FIXME: temporarily disabled */
56 if (spec->autocfg.mono_out_pin) {
57 int dir = get_wcaps(codec, spec->autocfg.mono_out_pin) &
58 (AC_WCAP_OUT_AMP | AC_WCAP_IN_AMP);