diff options
| author | Andy Shevchenko <[email protected]> | 2023-08-03 16:19:18 +0300 |
|---|---|---|
| committer | Andrew Morton <[email protected]> | 2023-08-18 10:18:59 -0700 |
| commit | 46f12960aad2d48fc6742470f718e147e5c85d06 (patch) | |
| tree | 984dd692094c365a80fd2ae38376185aec1efe9c /include/linux | |
| parent | 84c10951da91575778cbc3d199cdddea3d42d905 (diff) | |
drm/i915: Move abs_diff() to math.h
abs_diff() belongs to math.h. Move it there. This will allow others to
use it.
[[email protected]: add abs_diff() documentation]
Link: https://lkml.kernel.org/r/[email protected]
[[email protected]: fix comment, per Randy]
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Andy Shevchenko <[email protected]>
Reviewed-by: Jiri Slaby <[email protected]> # tty/serial
Acked-by: Jani Nikula <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Reviewed-by: Andi Shyti <[email protected]>
Reviewed-by: Philipp Zabel <[email protected]> # gpu/ipu-v3
Cc: Alexey Dobriyan <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: David Airlie <[email protected]>
Cc: Helge Deller <[email protected]>
Cc: Imre Deak <[email protected]>
Cc: Jani Nikula <[email protected]>
Cc: Joonas Lahtinen <[email protected]>
Cc: Rasmus Villemoes <[email protected]>
Cc: Rodrigo Vivi <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
Cc: Randy Dunlap <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/math.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/math.h b/include/linux/math.h index 2d388650c556..dd4152711de7 100644 --- a/include/linux/math.h +++ b/include/linux/math.h @@ -156,6 +156,25 @@ __STRUCT_FRACT(u32) ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) /** + * abs_diff - return absolute value of the difference between the arguments + * @a: the first argument + * @b: the second argument + * + * @a and @b have to be of the same type. With this restriction we compare + * signed to signed and unsigned to unsigned. The result is the subtraction + * the smaller of the two from the bigger, hence result is always a positive + * value. + * + * Return: an absolute value of the difference between the @a and @b. + */ +#define abs_diff(a, b) ({ \ + typeof(a) __a = (a); \ + typeof(b) __b = (b); \ + (void)(&__a == &__b); \ + __a > __b ? (__a - __b) : (__b - __a); \ +}) + +/** * reciprocal_scale - "scale" a value into range [0, ep_ro) * @val: value * @ep_ro: right open interval endpoint |