Merge "ASoC: Update the Max value of integer controls"

This commit is contained in:
qctecmdr 2020-03-11 21:08:28 -07:00 • committed by Gerrit - the friendly Code Review server
commit f67c86403d

View file

@ -196,7 +196,10 @@ int snd_soc_info_volsw(struct snd_kcontrol *kcontrol,
uinfo->count = snd_soc_volsw_is_stereo(mc) ? 2 : 1;
uinfo->value.integer.min = 0;
uinfo->value.integer.max = platform_max - mc->min;
if (uinfo->type == SNDRV_CTL_ELEM_TYPE_INTEGER)
uinfo->value.integer.max = platform_max - mc->min;
else
uinfo->value.integer.max = platform_max;
return 0;
}
EXPORT_SYMBOL_GPL(snd_soc_info_volsw);
@ -216,15 +219,11 @@ EXPORT_SYMBOL_GPL(snd_soc_info_volsw);
int snd_soc_info_volsw_sx(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_info *uinfo)
{
struct soc_mixer_control *mc =
(struct soc_mixer_control *)kcontrol->private_value;
snd_soc_info_volsw(kcontrol, uinfo);
/* Max represents the number of levels in an SX control not the
* maximum value, so add the minimum value back on
* maximum value, uinfo->value.integer.max is set to number of levels
* in snd_soc_info_volsw. No further adjustment is necessary.
*/
uinfo->value.integer.max += mc->min;
return 0;
}
EXPORT_SYMBOL_GPL(snd_soc_info_volsw_sx);