ASoC: ops: Don't modify the driver's plaform_max when reading state
authorMark Brown <broonie@kernel.org>
Fri, 3 Jun 2022 11:25:08 +0000 (13:25 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 14 Jun 2022 10:33:47 +0000 (11:33 +0100)
commit30ac49841386f933339817771ec315a34a4c0edd
tree28afc612cabd4b168b81f1d1fc196baf7d5ee5e0
parent14cc5849120051caf537f663ec620910503bb719
ASoC: ops: Don't modify the driver's plaform_max when reading state

Currently snd_soc_info_volsw() will set a platform_max based on the limit
the control has if one is not already set. This isn't really great, we
shouldn't be modifying the passed in driver data especially in a path like
this which may not ever be executed or where we may execute other callbacks
before this one. Instead make this function leave the data unchanged, and
clarify things a bit by referring to max rather than platform_max within
the function. platform_max is now applied as a limit after working out the
natural maximum value for the control.

This means that platform_max is no longer treated as a direct register
value for controls were min is non-zero. The put() callbacks already
validate on this basis, and there do not appear to be any in tree users
that would be affected.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220603112508.3856519-1-broonie@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-ops.c