On Fri, Jun 17, 2022 at 04:36:06PM +0100, Stefan Binding wrote: > The standard snd_soc_info_volsw() allows a two value control to be > defined as an integer control only if the control name ends in > "Volume". It achieves this by creating a substring if it contains > " Volume", and ensuring this exists at the end of the name. The > volume substring is then used to decide whether the type is a > SNDRV_CTL_ELEM_TYPE_INTEGER or SNDRV_CTL_ELEM_TYPE_BOOLEAN. > However this volume substring is only computed for a two value > control. > This means for controls where there are more than two possible > values, the substring is never created, so in this case the > substring remains NULL, and the condition yields > SNDRV_CTL_ELEM_TYPE_BOOLEAN, even though there are more than 2 > possible values. > If there are more than 2 possible values for the control, > then it should always be an integer control. > > Fixes: aa2a4b897132 ("ASoC: ops: Fix boolean/integer detection for simple controls") > > Signed-off-by: Stefan Binding <sbinding@xxxxxxxxxxxxxxxxxxxxx> > --- Reviewed-by: Charles Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxx> Thanks, Charles