aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-12-19 10:39:48 -0500
committerTakashi Iwai <tiwai@suse.de>2008-12-19 10:41:06 -0500
commiteb63212868c348cc6d3ec6929d7d98f7d29493e9 (patch)
treeb7bad5a11818b1008a9768a99c04e87cf63c983d
parent9158923228822c08ed3116bfe21472261a05a725 (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.c12
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);