This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: atomisp: Clean up unused macros from math_support.h
Author:  Andy Shevchenko <andriy.shevche...@linux.intel.com>
Date:    Wed Apr 24 21:43:31 2024 +0300

Clean up unused macros from math_support.h and replace rarely
used by generic ones from Linux kernel headers.

Signed-off-by: Andy Shevchenko <andriy.shevche...@linux.intel.com>
Link: 
https://lore.kernel.org/r/20240424184421.1737776-2-andriy.shevche...@linux.intel.com
Reviewed-by: Hans de Goede <hdego...@redhat.com>
Signed-off-by: Hans de Goede <hdego...@redhat.com>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 .../pci/camera/util/interface/ia_css_util.h        |  11 ---
 .../media/atomisp/pci/camera/util/src/util.c       |  25 +++--
 .../pci/hive_isp_css_include/math_support.h        | 110 +--------------------
 drivers/staging/media/atomisp/pci/ia_css_3a.h      |   1 +
 .../pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c |   6 +-
 .../media/atomisp/pci/runtime/binary/src/binary.c  |   2 -
 drivers/staging/media/atomisp/pci/sh_css_frac.h    |   4 +-
 7 files changed, 20 insertions(+), 139 deletions(-)

---

diff --git 
a/drivers/staging/media/atomisp/pci/camera/util/interface/ia_css_util.h 
b/drivers/staging/media/atomisp/pci/camera/util/interface/ia_css_util.h
index 59df44d696a0..d4de1e9293a1 100644
--- a/drivers/staging/media/atomisp/pci/camera/util/interface/ia_css_util.h
+++ b/drivers/staging/media/atomisp/pci/camera/util/interface/ia_css_util.h
@@ -100,17 +100,6 @@ bool ia_css_util_res_leq(
 bool ia_css_util_resolution_is_zero(
     const struct ia_css_resolution resolution);
 
-/* ISP2401 */
-/**
- * @brief Check if resolution is even
- *
- * @param[in] resolution The resolution to check
- *
- * @returns true if resolution is even
- */
-bool ia_css_util_resolution_is_even(
-    const struct ia_css_resolution resolution);
-
 /* @brief check width and height
  *
  * @param[in] stream_format
diff --git a/drivers/staging/media/atomisp/pci/camera/util/src/util.c 
b/drivers/staging/media/atomisp/pci/camera/util/src/util.c
index 40a71e37cc4e..9d7025a00beb 100644
--- a/drivers/staging/media/atomisp/pci/camera/util/src/util.c
+++ b/drivers/staging/media/atomisp/pci/camera/util/src/util.c
@@ -119,17 +119,6 @@ int ia_css_util_check_vf_out_info(
        return 0;
 }
 
-int ia_css_util_check_res(unsigned int width, unsigned int height)
-{
-       /* height can be odd number for jpeg/embedded data from ISYS2401 */
-       if (((width  == 0)   ||
-            (height == 0)   ||
-            IS_ODD(width))) {
-               return -EINVAL;
-       }
-       return 0;
-}
-
 /* ISP2401 */
 bool ia_css_util_res_leq(struct ia_css_resolution a, struct ia_css_resolution 
b)
 {
@@ -142,10 +131,18 @@ bool ia_css_util_resolution_is_zero(const struct 
ia_css_resolution resolution)
        return (resolution.width == 0) || (resolution.height == 0);
 }
 
-/* ISP2401 */
-bool ia_css_util_resolution_is_even(const struct ia_css_resolution resolution)
+int ia_css_util_check_res(unsigned int width, unsigned int height)
 {
-       return IS_EVEN(resolution.height) && IS_EVEN(resolution.width);
+       const struct ia_css_resolution resolution = { .width = width, .height = 
height };
+
+       if (ia_css_util_resolution_is_zero(resolution))
+               return -EINVAL;
+
+       /* height can be odd number for jpeg/embedded data from ISYS2401 */
+       if (width & 1)
+               return -EINVAL;
+
+       return 0;
 }
 
 bool ia_css_util_is_input_format_raw(enum atomisp_input_format format)
diff --git 
a/drivers/staging/media/atomisp/pci/hive_isp_css_include/math_support.h 
b/drivers/staging/media/atomisp/pci/hive_isp_css_include/math_support.h
index a444ec14ff9d..7349943bba2b 100644
--- a/drivers/staging/media/atomisp/pci/hive_isp_css_include/math_support.h
+++ b/drivers/staging/media/atomisp/pci/hive_isp_css_include/math_support.h
@@ -16,133 +16,27 @@
 #ifndef __MATH_SUPPORT_H
 #define __MATH_SUPPORT_H
 
-#include <linux/kernel.h> /* Override the definition of max/min from linux 
kernel*/
-
-#define IS_ODD(a)            ((a) & 0x1)
-#define IS_EVEN(a)           (!IS_ODD(a))
+/* Override the definition of max/min from Linux kernel */
+#include <linux/minmax.h>
 
 /* force a value to a lower even value */
 #define EVEN_FLOOR(x)        ((x) & ~1)
 
-/* ISP2401 */
-/* If the number is odd, find the next even number */
-#define EVEN_CEIL(x)         ((IS_ODD(x)) ? ((x) + 1) : (x))
-
-/* A => B */
-#define IMPLIES(a, b)        (!(a) || (b))
-
 /* for preprocessor and array sizing use MIN and MAX
    otherwise use min and max */
 #define MAX(a, b)            (((a) > (b)) ? (a) : (b))
 #define MIN(a, b)            (((a) < (b)) ? (a) : (b))
 
-#define ROUND_DIV(a, b)      (((b) != 0) ? ((a) + ((b) >> 1)) / (b) : 0)
 #define CEIL_DIV(a, b)       (((b) != 0) ? ((a) + (b) - 1) / (b) : 0)
 #define CEIL_MUL(a, b)       (CEIL_DIV(a, b) * (b))
 #define CEIL_MUL2(a, b)      (((a) + (b) - 1) & ~((b) - 1))
 #define CEIL_SHIFT(a, b)     (((a) + (1 << (b)) - 1) >> (b))
 #define CEIL_SHIFT_MUL(a, b) (CEIL_SHIFT(a, b) << (b))
-#define ROUND_HALF_DOWN_DIV(a, b)      (((b) != 0) ? ((a) + (b / 2) - 1) / (b) 
: 0)
-#define ROUND_HALF_DOWN_MUL(a, b)      (ROUND_HALF_DOWN_DIV(a, b) * (b))
-
-/*To Find next power of 2 number from x */
-#define bit2(x)            ((x)      | ((x) >> 1))
-#define bit4(x)            (bit2(x)  | (bit2(x) >> 2))
-#define bit8(x)            (bit4(x)  | (bit4(x) >> 4))
-#define bit16(x)           (bit8(x)  | (bit8(x) >> 8))
-#define bit32(x)           (bit16(x) | (bit16(x) >> 16))
-#define NEXT_POWER_OF_2(x) (bit32(x - 1) + 1)
-
-/* min and max should not be macros as they will evaluate their arguments 
twice.
-   if you really need a macro (e.g. for CPP or for initializing an array)
-   use MIN() and MAX(), otherwise use min() and max().
-
-*/
 
 #if !defined(PIPE_GENERATION)
 
-/*
-This macro versions are added back as we are mixing types in usage of inline.
-This causes corner cases of calculations to be incorrect due to conversions
-between signed and unsigned variables or overflows.
-Before the addition of the inline functions, max, min and ceil_div were macros
-and therefore adding them back.
-
-Leaving out the other math utility functions as they are newly added
-*/
-
 #define ceil_div(a, b)         (CEIL_DIV(a, b))
 
-static inline unsigned int ceil_mul(unsigned int a, unsigned int b)
-{
-       return CEIL_MUL(a, b);
-}
-
-static inline unsigned int ceil_mul2(unsigned int a, unsigned int b)
-{
-       return CEIL_MUL2(a, b);
-}
-
-static inline unsigned int ceil_shift(unsigned int a, unsigned int b)
-{
-       return CEIL_SHIFT(a, b);
-}
-
-static inline unsigned int ceil_shift_mul(unsigned int a, unsigned int b)
-{
-       return CEIL_SHIFT_MUL(a, b);
-}
-
-/* ISP2401 */
-static inline unsigned int round_half_down_div(unsigned int a, unsigned int b)
-{
-       return ROUND_HALF_DOWN_DIV(a, b);
-}
-
-/* ISP2401 */
-static inline unsigned int round_half_down_mul(unsigned int a, unsigned int b)
-{
-       return ROUND_HALF_DOWN_MUL(a, b);
-}
-
-/* @brief Next Power of Two
- *
- *  @param[in] unsigned number
- *
- *  @return next power of two
- *
- * This function rounds input to the nearest power of 2 (2^x)
- * towards infinity
- *
- * Input Range: 0 .. 2^(8*sizeof(int)-1)
- *
- * IF input is a power of 2
- *     out = in
- * OTHERWISE
- *     out = 2^(ceil(log2(in))
- *
- */
-
-static inline unsigned int ceil_pow2(unsigned int a)
-{
-       if (a == 0) {
-               return 1;
-       }
-       /* IF input is already a power of two*/
-       else if ((!((a) & ((a) - 1)))) {
-               return a;
-       } else {
-               unsigned int v = a;
-
-               v |= v >> 1;
-               v |= v >> 2;
-               v |= v >> 4;
-               v |= v >> 8;
-               v |= v >> 16;
-               return (v + 1);
-       }
-}
-
 #endif /* !defined(PIPE_GENERATION) */
 
 /*
diff --git a/drivers/staging/media/atomisp/pci/ia_css_3a.h 
b/drivers/staging/media/atomisp/pci/ia_css_3a.h
index 70cfc915cc56..506910dd5c18 100644
--- a/drivers/staging/media/atomisp/pci/ia_css_3a.h
+++ b/drivers/staging/media/atomisp/pci/ia_css_3a.h
@@ -20,6 +20,7 @@
  * This file contains types used for 3A statistics
  */
 
+#include <math_support.h>
 #include <type_support.h>
 #include "ia_css_types.h"
 #include "ia_css_err.h"
diff --git 
a/drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c 
b/drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c
index 9c9d9b9a453e..70132d955e9b 100644
--- 
a/drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c
+++ 
b/drivers/staging/media/atomisp/pci/isp/kernels/xnr/xnr_3.0/ia_css_xnr3.host.c
@@ -13,6 +13,8 @@
  * more details.
  */
 
+#include <linux/log2.h>
+
 #include "type_support.h"
 #include "math_support.h"
 #include "sh_css_defs.h"
@@ -137,9 +139,7 @@ ia_css_xnr3_encode(
     unsigned int size)
 {
        int kernel_size = XNR_FILTER_SIZE;
-       /* The adjust factor is the next power of 2
-          w.r.t. the kernel size*/
-       int adjust_factor = ceil_pow2(kernel_size);
+       int adjust_factor = roundup_pow_of_two(kernel_size);
        s32 max_diff = (1 << (ISP_VEC_ELEMBITS - 1)) - 1;
        s32 min_diff = -(1 << (ISP_VEC_ELEMBITS - 1));
 
diff --git a/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c 
b/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c
index 130662f8e768..b0f904a5e442 100644
--- a/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c
+++ b/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c
@@ -43,8 +43,6 @@
 
 #include "assert_support.h"
 
-#define IMPLIES(a, b)           (!(a) || (b))   /* A => B */
-
 static struct ia_css_binary_xinfo *all_binaries; /* ISP binaries only (no SP) 
*/
 static struct ia_css_binary_xinfo
        *binary_infos[IA_CSS_BINARY_NUM_MODES] = { NULL, };
diff --git a/drivers/staging/media/atomisp/pci/sh_css_frac.h 
b/drivers/staging/media/atomisp/pci/sh_css_frac.h
index 8f08df5c88cc..b90b5b330dfa 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_frac.h
+++ b/drivers/staging/media/atomisp/pci/sh_css_frac.h
@@ -16,7 +16,9 @@
 #ifndef __SH_CSS_FRAC_H
 #define __SH_CSS_FRAC_H
 
-#include <math_support.h>
+#include <linux/minmax.h>
+
+#include "mamoiada_params.h"
 
 #define sISP_REG_BIT                 ISP_VEC_ELEMBITS
 #define uISP_REG_BIT                 ((unsigned int)(sISP_REG_BIT - 1))

Reply via email to