mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +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
1 changed files with 5 additions and 3 deletions
|
@ -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…
Add table
Reference in a new issue