mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 14:43:16 +00:00
ALSA: emu10k1: fix non-zero mixer control defaults in highres mode
The default value needs to be scaled. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Link: https://lore.kernel.org/r/20230514170323.3408834-3-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
a746516d75
commit
bb5ceb43b7
@ -1116,18 +1116,19 @@ snd_emu10k1_init_mono_control(struct snd_emu10k1_fx8010_control_gpr *ctl,
|
||||
ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
|
||||
strcpy(ctl->id.name, name);
|
||||
ctl->vcount = ctl->count = 1;
|
||||
ctl->gpr[0] = gpr + 0; ctl->value[0] = defval;
|
||||
if (high_res_gpr_volume) {
|
||||
ctl->min = 0;
|
||||
ctl->max = 0x7fffffff;
|
||||
ctl->tlv = snd_emu10k1_db_linear;
|
||||
ctl->translation = EMU10K1_GPR_TRANSLATION_NONE;
|
||||
defval = defval * 0x7fffffffLL / 100;
|
||||
} else {
|
||||
ctl->min = 0;
|
||||
ctl->max = 100;
|
||||
ctl->tlv = snd_emu10k1_db_scale1;
|
||||
ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100;
|
||||
}
|
||||
ctl->gpr[0] = gpr + 0; ctl->value[0] = defval;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1137,19 +1138,20 @@ snd_emu10k1_init_stereo_control(struct snd_emu10k1_fx8010_control_gpr *ctl,
|
||||
ctl->id.iface = (__force int)SNDRV_CTL_ELEM_IFACE_MIXER;
|
||||
strcpy(ctl->id.name, name);
|
||||
ctl->vcount = ctl->count = 2;
|
||||
ctl->gpr[0] = gpr + 0; ctl->value[0] = defval;
|
||||
ctl->gpr[1] = gpr + 1; ctl->value[1] = defval;
|
||||
if (high_res_gpr_volume) {
|
||||
ctl->min = 0;
|
||||
ctl->max = 0x7fffffff;
|
||||
ctl->tlv = snd_emu10k1_db_linear;
|
||||
ctl->translation = EMU10K1_GPR_TRANSLATION_NONE;
|
||||
defval = defval * 0x7fffffffLL / 100;
|
||||
} else {
|
||||
ctl->min = 0;
|
||||
ctl->max = 100;
|
||||
ctl->tlv = snd_emu10k1_db_scale1;
|
||||
ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100;
|
||||
}
|
||||
ctl->gpr[0] = gpr + 0; ctl->value[0] = defval;
|
||||
ctl->gpr[1] = gpr + 1; ctl->value[1] = defval;
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
x
Reference in New Issue
Block a user