diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-01-14 07:56:51 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-01-24 16:41:39 -0800 |
commit | 3aacb5255471f7d3a50eb348aedb2a43696a529f (patch) | |
tree | 0d6b321086d5c2c69ef420f69ca4e8356597fcb1 | |
parent | 115ceddb81c2836a08fd3ccb7a61ada442310753 (diff) | |
download | lwn-3aacb5255471f7d3a50eb348aedb2a43696a529f.tar.gz lwn-3aacb5255471f7d3a50eb348aedb2a43696a529f.zip |
ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c
commit 8317e0b0c2234f5f1f5d54804e4093d11bc0dffa upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 392924c5d7e3..8b204b8ffdfc 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -3985,8 +3985,19 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res) 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 */ } } |