On Tue, May 17, 2022 at 04:12:04AM +0300, Tan Nayir wrote:
The $val in both functions has a range between 0 and an arbitrary limit whereas the range specified with the $min and $max can start from a negative number. To do the out of bound check correctly, the $val must be added the $min offset.
val = ucontrol->value.integer.value[0];
- if (mc->platform_max && val > mc->platform_max)
- if (mc->platform_max && ((int)val + min) > mc->platform_max)
No, the minimum value we expose to userspace is always scaled so that userspace sees a range starting from zero and that's where platform_max is referenced to - we're applying this limit before we start remapping to actual register values. The code would be a lot simpler if we didn't do this rescaling.
Please don't send new patches in reply to old patches or serieses, this makes it harder for both people and tools to understand what is going on - it can bury things in mailboxes and make it difficult to keep track of what current patches are, both for the new patches and the old ones.