aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/patch_via.c12
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