提交 b9f5a89c 编写于 作者: N Nicolas Graziano 提交者: Jaroslav Kysela

[ALSA] hda-codec - Fix LFE volume/switch

HDA Codec driver
Fixed LFE volume/switch control.
Signed-off-by: NNicolas Graziano <nicolas.graziano@wanadoo.fr>
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
上级 d827560c
...@@ -749,12 +749,14 @@ int snd_hda_mixer_amp_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t ...@@ -749,12 +749,14 @@ int snd_hda_mixer_amp_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
long *valp = ucontrol->value.integer.value; long *valp = ucontrol->value.integer.value;
int change = 0; int change = 0;
if (chs & 1) if (chs & 1) {
change = snd_hda_codec_amp_update(codec, nid, 0, dir, idx, change = snd_hda_codec_amp_update(codec, nid, 0, dir, idx,
0x7f, *valp); 0x7f, *valp);
valp++;
}
if (chs & 2) if (chs & 2)
change |= snd_hda_codec_amp_update(codec, nid, 1, dir, idx, change |= snd_hda_codec_amp_update(codec, nid, 1, dir, idx,
0x7f, valp[1]); 0x7f, *valp);
return change; return change;
} }
...@@ -796,12 +798,15 @@ int snd_hda_mixer_amp_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t ...@@ -796,12 +798,15 @@ int snd_hda_mixer_amp_switch_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t
long *valp = ucontrol->value.integer.value; long *valp = ucontrol->value.integer.value;
int change = 0; int change = 0;
if (chs & 1) if (chs & 1) {
change = snd_hda_codec_amp_update(codec, nid, 0, dir, idx, change = snd_hda_codec_amp_update(codec, nid, 0, dir, idx,
0x80, *valp ? 0 : 0x80); 0x80, *valp ? 0 : 0x80);
valp++;
}
if (chs & 2) if (chs & 2)
change |= snd_hda_codec_amp_update(codec, nid, 1, dir, idx, change |= snd_hda_codec_amp_update(codec, nid, 1, dir, idx,
0x80, valp[1] ? 0 : 0x80); 0x80, *valp ? 0 : 0x80);
return change; return change;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册