mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
ALSA: VIA HDA: Mute/unmute mixer conncted to Headphone for VT1718S.
When switch HP independent mode, mute/unmute connctions of mixer which is connected to headphone for VT1718S. Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
42467b32ce
commit
ba31a60d0f
@ -745,12 +745,23 @@ static int via_independent_hp_put(struct snd_kcontrol *kcontrol,
|
||||
struct via_spec *spec = codec->spec;
|
||||
hda_nid_t nid = kcontrol->private_value;
|
||||
unsigned int pinsel = ucontrol->value.enumerated.item[0];
|
||||
unsigned int parm0, parm1;
|
||||
/* Get Independent Mode index of headphone pin widget */
|
||||
spec->hp_independent_mode = spec->hp_independent_mode_index == pinsel
|
||||
? 1 : 0;
|
||||
if (spec->codec_type == VT1718S)
|
||||
if (spec->codec_type == VT1718S) {
|
||||
snd_hda_codec_write(codec, nid, 0,
|
||||
AC_VERB_SET_CONNECT_SEL, pinsel ? 2 : 0);
|
||||
/* Set correct mute switch for MW3 */
|
||||
parm0 = spec->hp_independent_mode ?
|
||||
AMP_IN_UNMUTE(0) : AMP_IN_MUTE(0);
|
||||
parm1 = spec->hp_independent_mode ?
|
||||
AMP_IN_MUTE(1) : AMP_IN_UNMUTE(1);
|
||||
snd_hda_codec_write(codec, 0x1b, 0,
|
||||
AC_VERB_SET_AMP_GAIN_MUTE, parm0);
|
||||
snd_hda_codec_write(codec, 0x1b, 0,
|
||||
AC_VERB_SET_AMP_GAIN_MUTE, parm1);
|
||||
}
|
||||
else
|
||||
snd_hda_codec_write(codec, nid, 0,
|
||||
AC_VERB_SET_CONNECT_SEL, pinsel);
|
||||
|
Loading…
Reference in New Issue
Block a user