Message ID | 20210114233345.160223-3-heiko@sntech.de |
---|---|
State | Superseded |
Headers | show |
Series | Fix the rkisp1 userspace API for later IP versions | expand |
Hi Heiko, I love your patch! Perhaps something to improve: [auto build test WARNING on rockchip/for-next] [also build test WARNING on linuxtv-media/master linus/master v5.11-rc3 next-20210114] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Heiko-Stuebner/media-rockchip-rkisp1-carry-ip-version-information/20210115-124728 base: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next config: c6x-allyesconfig (attached as .config) compiler: c6x-elf-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/9a078d10ec53e5c1651ed5da0b37b0e4eb34fc47 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Heiko-Stuebner/media-rockchip-rkisp1-carry-ip-version-information/20210115-124728 git checkout 9a078d10ec53e5c1651ed5da0b37b0e4eb34fc47 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=c6x If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c: In function 'rkisp1_stats_get_hst_meas': >> drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c:239:2: warning: 'memset' used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size] 239 | memset(pbuf->params.hist.hist_bins, 0, RKISP1_CIF_ISP_HIST_BIN_N_MAX); | ^~~~~~ vim +/memset +239 drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c 231 232 static void rkisp1_stats_get_hst_meas(struct rkisp1_stats *stats, 233 struct rkisp1_stat_buffer *pbuf) 234 { 235 struct rkisp1_device *rkisp1 = stats->rkisp1; 236 unsigned int i; 237 238 /* the global max can be bigger then the version-specific one */ > 239 memset(pbuf->params.hist.hist_bins, 0, RKISP1_CIF_ISP_HIST_BIN_N_MAX); 240 241 pbuf->meas_type |= RKISP1_CIF_ISP_STAT_HIST; 242 for (i = 0; i < RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10; i++) 243 pbuf->params.hist.hist_bins[i] = 244 (u8)rkisp1_read(rkisp1, 245 RKISP1_CIF_ISP_HIST_BIN_0 + i * 4); 246 } 247 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi Heiko,
I love your patch! Perhaps something to improve:
[auto build test WARNING on rockchip/for-next]
[also build test WARNING on linuxtv-media/master linus/master v5.11-rc3 next-20210114]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Heiko-Stuebner/media-rockchip-rkisp1-carry-ip-version-information/20210115-124728
base: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: sparc-randconfig-r001-20210115 (attached as .config)
compiler: sparc-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/9a078d10ec53e5c1651ed5da0b37b0e4eb34fc47
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Heiko-Stuebner/media-rockchip-rkisp1-carry-ip-version-information/20210115-124728
git checkout 9a078d10ec53e5c1651ed5da0b37b0e4eb34fc47
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sparc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/string.h:21,
from include/linux/bitmap.h:9,
from include/linux/cpumask.h:12,
from arch/sparc/include/asm/smp_32.h:15,
from arch/sparc/include/asm/smp.h:7,
from arch/sparc/include/asm/switch_to_32.h:5,
from arch/sparc/include/asm/switch_to.h:7,
from arch/sparc/include/asm/ptrace.h:120,
from arch/sparc/include/asm/thread_info_32.h:19,
from arch/sparc/include/asm/thread_info.h:7,
from include/linux/thread_info.h:56,
from include/asm-generic/preempt.h:5,
from ./arch/sparc/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:51,
from include/linux/wait.h:9,
from include/linux/poll.h:8,
from include/media/v4l2-dev.h:13,
from include/media/v4l2-common.h:18,
from drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c:8:
drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c: In function 'rkisp1_stats_get_hst_meas':
>> arch/sparc/include/asm/string.h:18:29: warning: 'memset' used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
18 | #define memset(s, c, count) __builtin_memset(s, c, count)
| ^~~~~~~~~~~~~~~~
drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c:239:2: note: in expansion of macro 'memset'
239 | memset(pbuf->params.hist.hist_bins, 0, RKISP1_CIF_ISP_HIST_BIN_N_MAX);
| ^~~~~~
vim +/memset +18 arch/sparc/include/asm/string.h
70a6fcf3283a0ac1 Al Viro 2016-01-17 16
70a6fcf3283a0ac1 Al Viro 2016-01-17 17 #define __HAVE_ARCH_MEMSET
70a6fcf3283a0ac1 Al Viro 2016-01-17 @18 #define memset(s, c, count) __builtin_memset(s, c, count)
70a6fcf3283a0ac1 Al Viro 2016-01-17 19
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c index 6af4d551ffb5..fa47fe2a02d0 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c @@ -391,7 +391,7 @@ static void rkisp1_goc_config(struct rkisp1_params *params, RKISP1_CIF_ISP_CTRL_ISP_GAMMA_OUT_ENA); rkisp1_write(params->rkisp1, arg->mode, RKISP1_CIF_ISP_GAMMA_OUT_MODE); - for (i = 0; i < RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES; i++) + for (i = 0; i < RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10; i++) rkisp1_write(params->rkisp1, arg->gamma_y[i], RKISP1_CIF_ISP_GAMMA_OUT_Y_0 + i * 4); } diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c index 3ddab8fa8f2d..25d10919bc25 100644 --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-stats.c @@ -202,8 +202,11 @@ static void rkisp1_stats_get_aec_meas(struct rkisp1_stats *stats, struct rkisp1_device *rkisp1 = stats->rkisp1; unsigned int i; + /* the global max can be bigger than the version-specific one */ + memset(pbuf->params.ae.exp_mean, 0, RKISP1_CIF_ISP_AE_MEAN_MAX); + pbuf->meas_type |= RKISP1_CIF_ISP_STAT_AUTOEXP; - for (i = 0; i < RKISP1_CIF_ISP_AE_MEAN_MAX; i++) + for (i = 0; i < RKISP1_CIF_ISP_AE_MEAN_MAX_V10; i++) pbuf->params.ae.exp_mean[i] = (u8)rkisp1_read(rkisp1, RKISP1_CIF_ISP_EXP_MEAN_00 + i * 4); @@ -232,8 +235,11 @@ static void rkisp1_stats_get_hst_meas(struct rkisp1_stats *stats, struct rkisp1_device *rkisp1 = stats->rkisp1; unsigned int i; + /* the global max can be bigger then the version-specific one */ + memset(pbuf->params.hist.hist_bins, 0, RKISP1_CIF_ISP_HIST_BIN_N_MAX); + pbuf->meas_type |= RKISP1_CIF_ISP_STAT_HIST; - for (i = 0; i < RKISP1_CIF_ISP_HIST_BIN_N_MAX; i++) + for (i = 0; i < RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10; i++) pbuf->params.hist.hist_bins[i] = (u8)rkisp1_read(rkisp1, RKISP1_CIF_ISP_HIST_BIN_0 + i * 4); diff --git a/include/uapi/linux/rkisp1-config.h b/include/uapi/linux/rkisp1-config.h index bad46aadf838..aa4ace7264d3 100644 --- a/include/uapi/linux/rkisp1-config.h +++ b/include/uapi/linux/rkisp1-config.h @@ -49,8 +49,14 @@ #define RKISP1_CIF_ISP_CTK_COEFF_MAX 0x100 #define RKISP1_CIF_ISP_CTK_OFFSET_MAX 0x800 -#define RKISP1_CIF_ISP_AE_MEAN_MAX 25 -#define RKISP1_CIF_ISP_HIST_BIN_N_MAX 16 +#define RKISP1_CIF_ISP_AE_MEAN_MAX_V10 25 +#define RKISP1_CIF_ISP_AE_MEAN_MAX_V12 81 +#define RKISP1_CIF_ISP_AE_MEAN_MAX RKISP1_CIF_ISP_AE_MEAN_MAX_V12 + +#define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 16 +#define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 32 +#define RKISP1_CIF_ISP_HIST_BIN_N_MAX RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 + #define RKISP1_CIF_ISP_AFM_MAX_WINDOWS 3 #define RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE 17 @@ -86,7 +92,9 @@ * Gamma out */ /* Maximum number of color samples supported */ -#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES 17 +#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 17 +#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 34 +#define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 /* * Lens shade correction @@ -103,7 +111,9 @@ * Histogram calculation */ /* Last 3 values unused. */ -#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE 28 +#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 28 +#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 81 +#define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 /* * Defect Pixel Cluster Correction @@ -517,6 +527,10 @@ enum rkisp1_cif_isp_goc_mode { * * @mode: goc mode (from enum rkisp1_cif_isp_goc_mode) * @gamma_y: gamma out curve y-axis for all color components + * + * The number of entries is dependent on the hw_revision, + * see RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 vs _V12 and the + * global maximum is the bigger of the two. */ struct rkisp1_cif_isp_goc_config { __u32 mode; @@ -531,6 +545,10 @@ struct rkisp1_cif_isp_goc_config { * skipped * @meas_window: coordinates of the measure window * @hist_weight: weighting factor for sub-windows + * + * The number of entries of weighting factors is dependent on the hw_revision, + * see RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 vs _V12 and the + * global maximum is the bigger of the two. */ struct rkisp1_cif_isp_hst_config { __u32 mode; @@ -818,7 +836,11 @@ struct rkisp1_cif_isp_bls_meas_val { * @exp_mean: Mean luminance value of block xx * @bls_val: BLS measured values * - * Image is divided into 5x5 blocks. + * The number of entries is dependent on the hw_revision, + * see RKISP1_CIF_ISP_AE_MEAN_MAX_V10 vs _V12 and the + * global maximum is the bigger of the two. + * + * Image is divided into 5x5 blocks on V10 and 9x9 blocks on V12. */ struct rkisp1_cif_isp_ae_stat { __u8 exp_mean[RKISP1_CIF_ISP_AE_MEAN_MAX]; @@ -855,6 +877,10 @@ struct rkisp1_cif_isp_af_stat { * * Measurement window divided into 25 sub-windows, set * with ISP_HIST_XXX + * + * The number of entries is dependent on the hw_revision, + * see RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 vs _V12 and the + * global maximum is the bigger of the two. */ struct rkisp1_cif_isp_hist_stat { __u16 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX];