diff options
author | Niranjan H Y <niranjan.hy@ti.com> | 2025-09-12 14:06:20 +0530 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2025-09-22 14:00:38 +0200 |
commit | a0ce874cfaaab9792d657440b9d050e2112f6e4d (patch) | |
tree | 256b1fceedb769e9b197ae7a428262430422c6a5 | |
parent | 5998f0d07d2c4bf3d8ecc4e6218e6a324aeb7301 (diff) |
ASoC: ops: improve snd_soc_get_volsw
* clamp the values if the register value read is
out of range
Signed-off-by: Niranjan H Y <niranjan.hy@ti.com>
[This patch originally had two changes in it, I removed a second buggy
one -- broonie]
--
v5:
- remove clamp parameter
- move the boundary check after sign-bit extension
Link: https://patch.msgid.link/20250912083624.804-1-niranjan.hy@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/soc-ops.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c index a629e0eacb20..d2b6fb8e0b6c 100644 --- a/sound/soc/soc-ops.c +++ b/sound/soc/soc-ops.c @@ -118,6 +118,7 @@ static int soc_mixer_reg_to_ctl(struct soc_mixer_control *mc, unsigned int reg_v if (mc->sign_bit) val = sign_extend32(val, mc->sign_bit); + val = clamp(val, mc->min, mc->max); val -= mc->min; if (mc->invert) |