aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-01-14 01:56:51 -0500
committerTakashi Iwai <tiwai@suse.de>2009-01-14 02:00:49 -0500
commit8317e0b0c2234f5f1f5d54804e4093d11bc0dffa (patch)
tree139d3bd041b39a77a100a41b56ae4be62332f8c2 /sound/pci/hda
parentc15c5060fc32d7de7cde76aa61e98bae1334d82e (diff)
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
Diffstat (limited to 'sound/pci/hda')
-rw-r--r--sound/pci/hda/patch_sigmatel.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 77fcc312a1f4..103ac6d743ef 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)
4225 continue; 4225 continue;
4226 if (presence) 4226 if (presence)
4227 stac92xx_set_pinctl(codec, cfg->hp_pins[i], val); 4227 stac92xx_set_pinctl(codec, cfg->hp_pins[i], val);
4228#if 0 /* FIXME */
4229/* Resetting the pinctl like below may lead to (a sort of) regressions
4230 * on some devices since they use the HP pin actually for line/speaker
4231 * outs although the default pin config shows a different pin (that is
4232 * wrong and useless).
4233 *
4234 * So, it's basically a problem of default pin configs, likely a BIOS issue.
4235 * But, disabling the code below just works around it, and I'm too tired of
4236 * bug reports with such devices...
4237 */
4228 else 4238 else
4229 stac92xx_reset_pinctl(codec, cfg->hp_pins[i], val); 4239 stac92xx_reset_pinctl(codec, cfg->hp_pins[i], val);
4240#endif /* FIXME */
4230 } 4241 }
4231} 4242}
4232 4243