diff options
author | Lydia Wang <lydiawang@viatech.com.cn> | 2011-03-22 04:22:37 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-03-22 07:42:56 -0400 |
commit | ce0e5a9e81fbb153ee15ca60246c6722f07fc546 (patch) | |
tree | 566192ff4a0280010e23c767f3d753db43c357aa /sound | |
parent | bff5fbf50bd498c217994bd2d41a53ac3141185a (diff) |
ALSA: hda - VIA: Fix independent headphone no sound issue
Modify via_independent_hp_put() function to support VT1718S and VT1812
codecs, and fix independent headphone no sound issue.
Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_via.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 5bc9bd983e86..2f605e593957 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
@@ -1191,8 +1191,16 @@ static int via_independent_hp_put(struct snd_kcontrol *kcontrol, | |||
1191 | /* Get Independent Mode index of headphone pin widget */ | 1191 | /* Get Independent Mode index of headphone pin widget */ |
1192 | spec->hp_independent_mode = spec->hp_independent_mode_index == pinsel | 1192 | spec->hp_independent_mode = spec->hp_independent_mode_index == pinsel |
1193 | ? 1 : 0; | 1193 | ? 1 : 0; |
1194 | snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CONNECT_SEL, pinsel); | 1194 | if (spec->codec_type == VT1718S) |
1195 | snd_hda_codec_write(codec, nid, 0, | ||
1196 | AC_VERB_SET_CONNECT_SEL, pinsel ? 2 : 0); | ||
1197 | else | ||
1198 | snd_hda_codec_write(codec, nid, 0, | ||
1199 | AC_VERB_SET_CONNECT_SEL, pinsel); | ||
1195 | 1200 | ||
1201 | if (spec->codec_type == VT1812) | ||
1202 | snd_hda_codec_write(codec, 0x35, 0, | ||
1203 | AC_VERB_SET_CONNECT_SEL, pinsel); | ||
1196 | if (spec->multiout.hp_nid && spec->multiout.hp_nid | 1204 | if (spec->multiout.hp_nid && spec->multiout.hp_nid |
1197 | != spec->multiout.dac_nids[HDA_FRONT]) | 1205 | != spec->multiout.dac_nids[HDA_FRONT]) |
1198 | snd_hda_codec_setup_stream(codec, spec->multiout.hp_nid, | 1206 | snd_hda_codec_setup_stream(codec, spec->multiout.hp_nid, |
@@ -1211,6 +1219,8 @@ static int via_independent_hp_put(struct snd_kcontrol *kcontrol, | |||
1211 | activate_ctl(codec, "Headphone Playback Switch", | 1219 | activate_ctl(codec, "Headphone Playback Switch", |
1212 | spec->hp_independent_mode); | 1220 | spec->hp_independent_mode); |
1213 | } | 1221 | } |
1222 | /* update jack power state */ | ||
1223 | set_jack_power_state(codec); | ||
1214 | return 0; | 1224 | return 0; |
1215 | } | 1225 | } |
1216 | 1226 | ||