diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-12-19 10:39:48 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-12-19 10:41:06 -0500 |
commit | eb63212868c348cc6d3ec6929d7d98f7d29493e9 (patch) | |
tree | b7bad5a11818b1008a9768a99c04e87cf63c983d | |
parent | 9158923228822c08ed3116bfe21472261a05a725 (diff) |
ALSA: hda - Power up always when no jack detection is available
When no jack detection is available, the pins should be always
turned on since it can't be turned on/off dynamically via unsol
events.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index d9a89ced3c89..2cadf7c3b71b 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -3946,7 +3946,13 @@ static int stac92xx_init(struct hda_codec *codec) | |||
3946 | hda_nid_t nid = spec->pwr_nids[i]; | 3946 | hda_nid_t nid = spec->pwr_nids[i]; |
3947 | int pinctl, def_conf; | 3947 | int pinctl, def_conf; |
3948 | 3948 | ||
3949 | if (is_nid_hp_pin(cfg, nid) && spec->hp_detect) | 3949 | /* power on when no jack detection is available */ |
3950 | if (!spec->hp_detect) { | ||
3951 | stac_toggle_power_map(codec, nid, 1); | ||
3952 | continue; | ||
3953 | } | ||
3954 | |||
3955 | if (is_nid_hp_pin(cfg, nid)) | ||
3950 | continue; /* already has an unsol event */ | 3956 | continue; /* already has an unsol event */ |
3951 | 3957 | ||
3952 | pinctl = snd_hda_codec_read(codec, nid, 0, | 3958 | pinctl = snd_hda_codec_read(codec, nid, 0, |
@@ -3955,8 +3961,10 @@ static int stac92xx_init(struct hda_codec *codec) | |||
3955 | * any attempts on powering down a input port cause the | 3961 | * any attempts on powering down a input port cause the |
3956 | * referenced VREF to act quirky. | 3962 | * referenced VREF to act quirky. |
3957 | */ | 3963 | */ |
3958 | if (pinctl & AC_PINCTL_IN_EN) | 3964 | if (pinctl & AC_PINCTL_IN_EN) { |
3965 | stac_toggle_power_map(codec, nid, 1); | ||
3959 | continue; | 3966 | continue; |
3967 | } | ||
3960 | def_conf = snd_hda_codec_read(codec, nid, 0, | 3968 | def_conf = snd_hda_codec_read(codec, nid, 0, |
3961 | AC_VERB_GET_CONFIG_DEFAULT, 0); | 3969 | AC_VERB_GET_CONFIG_DEFAULT, 0); |
3962 | def_conf = get_defcfg_connect(def_conf); | 3970 | def_conf = get_defcfg_connect(def_conf); |