summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiranjan H Y <niranjan.hy@ti.com>2025-09-12 14:06:20 +0530
committerMark Brown <broonie@kernel.org>2025-09-22 14:00:38 +0200
commita0ce874cfaaab9792d657440b9d050e2112f6e4d (patch)
tree256b1fceedb769e9b197ae7a428262430422c6a5
parent5998f0d07d2c4bf3d8ecc4e6218e6a324aeb7301 (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.c1
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)