• Mark Brown's avatar
    ASoC: ops: Don't modify the driver's plaform_max when reading state · 30ac4984
    Mark Brown authored
    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: default avatarMark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20220603112508.3856519-1-broonie@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    30ac4984
soc-ops.c 26.6 KB