diff options
| author | Takashi Iwai <tiwai@suse.de> | 2006-09-21 08:28:21 -0400 |
|---|---|---|
| committer | Jaroslav Kysela <perex@suse.cz> | 2006-09-23 04:48:12 -0400 |
| commit | eb995a8c82dba4a8e027c99ac5001fbc287a115c (patch) | |
| tree | ee0bc14b9fd86361661db92f42aaa974d883fc80 /sound | |
| parent | 5c79b1f887f8edcd399baa164b66a1c08566c994 (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>
Diffstat (limited to 'sound')
| -rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 11 |
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 | ||
