Hi, On 8/13/24 3:12 PM, Andy Shevchenko wrote: > Replace rarely used macro by generic ones from Linux kernel headers. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Thank you for your 3 patch(es). I have merged this/these in my media-atomisp branch: https://git.kernel.org/pub/scm/linux/kernel/git/hansg/linux.git/log/?h=media-atomisp And this/these will be included in my next pull-request to Mauro (to media subsystem maintainer) Regards, Hans > --- > .../atomisp/pci/hive_isp_css_include/math_support.h | 6 ------ > .../ipu2_io_ls/bayer_io_ls/ia_css_bayer_io.host.c | 9 +++++---- > .../ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c | 9 +++++---- > .../media/atomisp/pci/runtime/binary/src/binary.c | 3 ++- > .../media/atomisp/pci/runtime/isys/src/virtual_isys.c | 8 ++++---- > 5 files changed, 16 insertions(+), 19 deletions(-) > > 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 160c496784b7..907f9ebcc60d 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 > @@ -28,12 +28,6 @@ > #define CEIL_SHIFT(a, b) (((a) + (1 << (b)) - 1) >> (b)) > #define CEIL_SHIFT_MUL(a, b) (CEIL_SHIFT(a, b) << (b)) > > -#if !defined(PIPE_GENERATION) > - > -#define ceil_div(a, b) (CEIL_DIV(a, b)) > - > -#endif /* !defined(PIPE_GENERATION) */ > - > /* > * For SP and ISP, SDK provides the definition of OP_std_modadd. > * We need it only for host > diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/bayer_io_ls/ia_css_bayer_io.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/bayer_io_ls/ia_css_bayer_io.host.c > index 0091e2a3da52..c32659894c29 100644 > --- a/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/bayer_io_ls/ia_css_bayer_io.host.c > +++ b/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/bayer_io_ls/ia_css_bayer_io.host.c > @@ -13,9 +13,11 @@ > * more details. > */ > > +#include <linux/bitops.h> > +#include <linux/math.h> > + > #include "ia_css_bayer_io.host.h" > #include "dma.h" > -#include "math_support.h" > #ifndef IA_CSS_NO_DEBUG > #include "ia_css_debug.h" > #endif > @@ -29,9 +31,8 @@ int ia_css_bayer_io_config(const struct ia_css_binary *binary, > const struct ia_css_frame **out_frames = (const struct ia_css_frame **) > &args->out_frame; > const struct ia_css_frame_info *in_frame_info = ia_css_frame_get_info(in_frame); > - const unsigned int ddr_bits_per_element = sizeof(short) * 8; > - const unsigned int ddr_elems_per_word = ceil_div(HIVE_ISP_DDR_WORD_BITS, > - ddr_bits_per_element); > + const unsigned int ddr_elems_per_word = > + DIV_ROUND_UP(HIVE_ISP_DDR_WORD_BITS, BITS_PER_TYPE(short)); > unsigned int size_get = 0, size_put = 0; > unsigned int offset = 0; > int ret; > diff --git a/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c b/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c > index 32c504a950ce..5b2d5023b5ee 100644 > --- a/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c > +++ b/drivers/staging/media/atomisp/pci/isp/kernels/ipu2_io_ls/yuv444_io_ls/ia_css_yuv444_io.host.c > @@ -13,9 +13,11 @@ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for > more details. > */ > > +#include <linux/bitops.h> > +#include <linux/math.h> > + > #include "ia_css_yuv444_io.host.h" > #include "dma.h" > -#include "math_support.h" > #ifndef IA_CSS_NO_DEBUG > #include "ia_css_debug.h" > #endif > @@ -29,9 +31,8 @@ int ia_css_yuv444_io_config(const struct ia_css_binary *binary, > const struct ia_css_frame **out_frames = (const struct ia_css_frame **) > &args->out_frame; > const struct ia_css_frame_info *in_frame_info = ia_css_frame_get_info(in_frame); > - const unsigned int ddr_bits_per_element = sizeof(short) * 8; > - const unsigned int ddr_elems_per_word = ceil_div(HIVE_ISP_DDR_WORD_BITS, > - ddr_bits_per_element); > + const unsigned int ddr_elems_per_word = > + DIV_ROUND_UP(HIVE_ISP_DDR_WORD_BITS, BITS_PER_TYPE(short)); > unsigned int size_get = 0, size_put = 0; > unsigned int offset = 0; > int ret; > 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 b0f904a5e442..2ff522f7dec8 100644 > --- a/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c > +++ b/drivers/staging/media/atomisp/pci/runtime/binary/src/binary.c > @@ -328,7 +328,8 @@ ia_css_binary_dvs_grid_info(const struct ia_css_binary *binary, > > dvs_info = &info->dvs_grid.dvs_grid_info; > > - /* for DIS, we use a division instead of a ceil_div. If this is smaller > + /* > + * For DIS, we use a division instead of a DIV_ROUND_UP(). If this is smaller > * than the 3a grid size, it indicates that the outer values are not > * valid for DIS. > */ > diff --git a/drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c b/drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c > index 52483498239d..2e0193671f4b 100644 > --- a/drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c > +++ b/drivers/staging/media/atomisp/pci/runtime/isys/src/virtual_isys.c > @@ -13,6 +13,8 @@ > * more details. > */ > > +#include <linux/bitops.h> > +#include <linux/math.h> > #include <linux/string.h> /* for memcpy() */ > > #include "system_global.h" > @@ -20,7 +22,6 @@ > > #include "ia_css_isys.h" > #include "ia_css_debug.h" > -#include "math_support.h" > #include "virtual_isys.h" > #include "isp.h" > #include "sh_css_defs.h" > @@ -558,7 +559,7 @@ static int32_t calculate_stride( > bits_per_pixel = CEIL_MUL(bits_per_pixel, 8); > > pixels_per_word = HIVE_ISP_DDR_WORD_BITS / bits_per_pixel; > - words_per_line = ceil_div(pixels_per_line_padded, pixels_per_word); > + words_per_line = DIV_ROUND_UP(pixels_per_line_padded, pixels_per_word); > bytes_per_line = HIVE_ISP_DDR_WORD_BYTES * words_per_line; > > return bytes_per_line; > @@ -690,7 +691,6 @@ static bool calculate_ibuf_ctrl_cfg( > const isp2401_input_system_cfg_t *isys_cfg, > ibuf_ctrl_cfg_t *cfg) > { > - const s32 bits_per_byte = 8; > s32 bits_per_pixel; > s32 bytes_per_pixel; > s32 left_padding; > @@ -698,7 +698,7 @@ static bool calculate_ibuf_ctrl_cfg( > (void)input_port; > > bits_per_pixel = isys_cfg->input_port_resolution.bits_per_pixel; > - bytes_per_pixel = ceil_div(bits_per_pixel, bits_per_byte); > + bytes_per_pixel = BITS_TO_BYTES(bits_per_pixel); > > left_padding = CEIL_MUL(isys_cfg->output_port_attr.left_padding, ISP_VEC_NELEMS) > * bytes_per_pixel;