Hi Jacopo, I love your patch! Perhaps something to improve: [auto build test WARNING on media-tree/master] [also build test WARNING on linus/master v6.0] [cannot apply to next-20221005] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Jacopo-Mondi/media-ar0521-Add-analog-gain-rework-clock-tree/20221006-030859 base: git://linuxtv.org/media_tree.git master config: i386-randconfig-a003-20221003 compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) 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/intel-lab-lkp/linux/commit/800a6425eee843e2cb1f8047accb401df327f45d git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Jacopo-Mondi/media-ar0521-Add-analog-gain-rework-clock-tree/20221006-030859 git checkout 800a6425eee843e2cb1f8047accb401df327f45d # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/media/i2c/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): ^ include/linux/minmax.h:20:39: note: expanded from macro '__typecheck' (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) ^ drivers/media/i2c/ar0521.c:609:7: note: 'exp_val' declared here int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^ drivers/media/i2c/ar0521.c:609:50: error: use of undeclared identifier 'exp_max'; did you mean 'exp_val'? int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^~~~~~~ exp_val include/linux/minmax.h:45:36: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^ include/linux/minmax.h:36:38: note: expanded from macro '__careful_cmp' __builtin_choose_expr(__safe_cmp(x, y), \ ^ include/linux/minmax.h:26:46: note: expanded from macro '__safe_cmp' (__typecheck(x, y) && __no_side_effects(x, y)) ^ include/linux/minmax.h:23:40: note: expanded from macro '__no_side_effects' (__is_constexpr(x) && __is_constexpr(y)) ^ include/linux/const.h:12:48: note: expanded from macro '__is_constexpr' (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8))) ^ drivers/media/i2c/ar0521.c:609:7: note: 'exp_val' declared here int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^ drivers/media/i2c/ar0521.c:609:50: error: use of undeclared identifier 'exp_max'; did you mean 'exp_val'? int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^~~~~~~ exp_val include/linux/minmax.h:45:36: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^ include/linux/minmax.h:37:12: note: expanded from macro '__careful_cmp' __cmp(x, y, op), \ ^ include/linux/minmax.h:28:34: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^ drivers/media/i2c/ar0521.c:609:7: note: 'exp_val' declared here int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^ drivers/media/i2c/ar0521.c:609:50: error: use of undeclared identifier 'exp_max'; did you mean 'exp_val'? int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^~~~~~~ exp_val include/linux/minmax.h:45:36: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^ include/linux/minmax.h:37:12: note: expanded from macro '__careful_cmp' __cmp(x, y, op), \ ^ include/linux/minmax.h:28:46: note: expanded from macro '__cmp' #define __cmp(x, y, op) ((x) op (y) ? (x) : (y)) ^ drivers/media/i2c/ar0521.c:609:7: note: 'exp_val' declared here int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^ drivers/media/i2c/ar0521.c:609:50: error: use of undeclared identifier 'exp_max'; did you mean 'exp_val'? int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^~~~~~~ exp_val include/linux/minmax.h:45:36: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^ include/linux/minmax.h:38:17: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:32:10: note: expanded from macro '__cmp_once' typeof(y) unique_y = (y); \ ^ drivers/media/i2c/ar0521.c:609:7: note: 'exp_val' declared here int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^ drivers/media/i2c/ar0521.c:609:50: error: use of undeclared identifier 'exp_max'; did you mean 'exp_val'? int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^~~~~~~ exp_val include/linux/minmax.h:45:36: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^ include/linux/minmax.h:38:17: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/minmax.h:32:25: note: expanded from macro '__cmp_once' typeof(y) unique_y = (y); \ ^ drivers/media/i2c/ar0521.c:609:7: note: 'exp_val' declared here int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^ drivers/media/i2c/ar0521.c:612:7: error: use of undeclared identifier 'exp_max'; did you mean 'exp_val'? exp_max, sensor->ctrls.exposure->step, ^~~~~~~ exp_val drivers/media/i2c/ar0521.c:609:7: note: 'exp_val' declared here int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^ >> drivers/media/i2c/ar0521.c:609:7: warning: mixing declarations and code is incompatible with standards before C99 [-Wdeclaration-after-statement] int exp_val = min(sensor->ctrls.exposure->val, exp_max); ^ 1 warning and 8 errors generated. vim +609 drivers/media/i2c/ar0521.c 597 598 static int ar0521_s_ctrl(struct v4l2_ctrl *ctrl) 599 { 600 struct v4l2_subdev *sd = ctrl_to_sd(ctrl); 601 struct ar0521_dev *sensor = to_ar0521_dev(sd); 602 int ret; 603 604 /* v4l2_ctrl_lock() locks our own mutex */ 605 606 switch (ctrl->id) { 607 case V4L2_CID_VBLANK: 608 int exp_max = sensor->fmt.height + ctrl->val - 4; > 609 int exp_val = min(sensor->ctrls.exposure->val, exp_max); 610 __v4l2_ctrl_modify_range(sensor->ctrls.exposure, 611 sensor->ctrls.exposure->minimum, 612 exp_max, sensor->ctrls.exposure->step, 613 exp_val); 614 break; 615 } 616 617 /* access the sensor only if it's powered up */ 618 if (!pm_runtime_get_if_in_use(&sensor->i2c_client->dev)) 619 return 0; 620 621 switch (ctrl->id) { 622 case V4L2_CID_HBLANK: 623 case V4L2_CID_VBLANK: 624 ret = ar0521_set_geometry(sensor); 625 break; 626 case V4L2_CID_ANALOGUE_GAIN: 627 ret = ar0521_set_analog_gain(sensor); 628 break; 629 case V4L2_CID_GAIN: 630 case V4L2_CID_RED_BALANCE: 631 case V4L2_CID_BLUE_BALANCE: 632 ret = ar0521_set_gains(sensor); 633 break; 634 case V4L2_CID_EXPOSURE: 635 ret = ar0521_write_reg(sensor, 636 AR0521_REG_COARSE_INTEGRATION_TIME, 637 ctrl->val); 638 break; 639 case V4L2_CID_TEST_PATTERN: 640 ret = ar0521_write_reg(sensor, AR0521_REG_TEST_PATTERN_MODE, 641 ctrl->val); 642 break; 643 } 644 645 pm_runtime_put(&sensor->i2c_client->dev); 646 return ret; 647 } 648 -- 0-DAY CI Kernel Test Service https://01.org/lkp