aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-09-21 08:28:21 -0400
committerJaroslav Kysela <perex@suse.cz>2006-09-23 04:48:12 -0400
commiteb995a8c82dba4a8e027c99ac5001fbc287a115c (patch)
treeee0bc14b9fd86361661db92f42aaa974d883fc80
parent5c79b1f887f8edcd399baa164b66a1c08566c994 (diff)
[ALSA] hda-codec - Fix headphone auto-toggle on sigmatel codec
Fix/optimize the headphone auto-toggle function on sigmatel codecs. The headphone pins are kept as output. When headhpones are unplugged, you cannot hear anyway ;) Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--sound/pci/hda/patch_sigmatel.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 92f48a725853..731b7b97ee71 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -1432,12 +1432,9 @@ static int stac92xx_init(struct hda_codec *codec)
1432 for (i = 0; i < cfg->hp_outs; i++) 1432 for (i = 0; i < cfg->hp_outs; i++)
1433 enable_pin_detect(codec, cfg->hp_pins[i], 1433 enable_pin_detect(codec, cfg->hp_pins[i],
1434 STAC_HP_EVENT); 1434 STAC_HP_EVENT);
1435 stac92xx_auto_init_hp_out(codec);
1435 /* fake event to set up pins */ 1436 /* fake event to set up pins */
1436 codec->patch_ops.unsol_event(codec, STAC_HP_EVENT << 26); 1437 codec->patch_ops.unsol_event(codec, STAC_HP_EVENT << 26);
1437 /* enable the headphones by default.
1438 * If/when unsol_event detection works, this will be ignored
1439 */
1440 stac92xx_auto_init_hp_out(codec);
1441 } else { 1438 } else {
1442 stac92xx_auto_init_multi_out(codec); 1439 stac92xx_auto_init_multi_out(codec);
1443 stac92xx_auto_init_hp_out(codec); 1440 stac92xx_auto_init_hp_out(codec);
@@ -1539,9 +1536,6 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res)
1539 for (i = 0; i < cfg->speaker_outs; i++) 1536 for (i = 0; i < cfg->speaker_outs; i++)
1540 stac92xx_reset_pinctl(codec, cfg->speaker_pins[i], 1537 stac92xx_reset_pinctl(codec, cfg->speaker_pins[i],
1541 AC_PINCTL_OUT_EN); 1538 AC_PINCTL_OUT_EN);
1542 for (i = 0; i < cfg->hp_outs; i++)
1543 stac92xx_set_pinctl(codec, cfg->hp_pins[i],
1544 AC_PINCTL_OUT_EN);
1545 } else { 1539 } else {
1546 /* enable lineouts, disable hp */ 1540 /* enable lineouts, disable hp */
1547 for (i = 0; i < cfg->line_outs; i++) 1541 for (i = 0; i < cfg->line_outs; i++)
@@ -1550,9 +1544,6 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res)
1550 for (i = 0; i < cfg->speaker_outs; i++) 1544 for (i = 0; i < cfg->speaker_outs; i++)
1551 stac92xx_set_pinctl(codec, cfg->speaker_pins[i], 1545 stac92xx_set_pinctl(codec, cfg->speaker_pins[i],
1552 AC_PINCTL_OUT_EN); 1546 AC_PINCTL_OUT_EN);
1553 for (i = 0; i < cfg->hp_outs; i++)
1554 stac92xx_reset_pinctl(codec, cfg->hp_pins[i],
1555 AC_PINCTL_OUT_EN);
1556 } 1547 }
1557} 1548}
1558 1549