From: Takashi Iwai <tiwai@suse.de>
Date: Wed, 14 Jan 2009 06:56:51 +0000 (+0100)
Subject: ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c
X-Git-Tag: v2.6.29-rc2~67^2~3^2~4
X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=8317e0b0c2234f5f1f5d54804e4093d11bc0dffa;p=linux-2.6-omap-h63xx.git

ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c

Resetting HP pinctl at the unplugged state may cause a sort of regression
on some devices because of their wrong pin configuration.

A simple workaround is to disable the pin reset.  This is ugly and may be
not good from the power-saving POV (if any), but damn simple.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: stable@kernel.org
---

diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 77fcc312a1f..103ac6d743e 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -4225,8 +4225,19 @@ static void stac92xx_hp_detect(struct hda_codec *codec)
 			continue;
 		if (presence)
 			stac92xx_set_pinctl(codec, cfg->hp_pins[i], val);
+#if 0 /* FIXME */
+/* Resetting the pinctl like below may lead to (a sort of) regressions
+ * on some devices since they use the HP pin actually for line/speaker
+ * outs although the default pin config shows a different pin (that is
+ * wrong and useless).
+ *
+ * So, it's basically a problem of default pin configs, likely a BIOS issue.
+ * But, disabling the code below just works around it, and I'm too tired of
+ * bug reports with such devices... 
+ */
 		else
 			stac92xx_reset_pinctl(codec, cfg->hp_pins[i], val);
+#endif /* FIXME */
 	}
 }