I've debugged the kernel again after applying the fix in 698813ba8c58 ("ASoC: ops: Fix bounds check for _sx controls") but it didn't fix the problem. The commit message in your fix states this: > For _sx controls the semantics of the max field is not the usual one, max > is the number of steps rather than the maximum value. This means that our > check in snd_soc_put_volsw_sx() needs to just check against the maximum > value. For some reason, this is not the case on my end. Both the $platform_max and $max fields are set to the maximum value of the range that is specified inside the codec code which is -84 to 40 and not the number of steps. This was also the reason behind my patch to the bounds check.