Hi Piyush, Thank you for the patch! Yet something to improve: [auto build test ERROR on wsa/i2c/for-next] [also build test ERROR on linus/master v6.3-rc4 next-20230330] [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/Piyush-Malgujar/i2c-thunderx-Clock-divisor-logic-changes/20230330-214626 base: https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-next patch link: https://lore.kernel.org/r/20230330133953.21074-3-pmalgujar%40marvell.com patch subject: [PATCH 2/3] i2c: thunderx: Add support for High speed mode config: riscv-randconfig-r042-20230329 (https://download.01.org/0day-ci/archive/20230331/202303310153.yx2xXH8s-lkp@xxxxxxxxx/config) compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7) 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 # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://github.com/intel-lab-lkp/linux/commit/c7866465c9142bf77cc1bc651704bfbfc9b0b411 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Piyush-Malgujar/i2c-thunderx-Clock-divisor-logic-changes/20230330-214626 git checkout c7866465c9142bf77cc1bc651704bfbfc9b0b411 # 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=riscv olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash drivers/i2c/busses/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202303310153.yx2xXH8s-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> drivers/i2c/busses/i2c-octeon-core.c:74:5: error: call to undeclared function '__udelay'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] __udelay(1); ^ drivers/i2c/busses/i2c-octeon-core.c:74:5: note: did you mean '__delay'? arch/riscv/include/asm/delay.h:18:13: note: '__delay' declared here extern void __delay(unsigned long cycles); ^ 1 error generated. vim +/__udelay +74 drivers/i2c/busses/i2c-octeon-core.c 39 40 /** 41 * octeon_i2c_wait - wait for the IFLG to be set 42 * @i2c: The struct octeon_i2c 43 * 44 * Returns 0 on success, otherwise a negative errno. 45 */ 46 static int octeon_i2c_wait(struct octeon_i2c *i2c) 47 { 48 long time_left; 49 50 /* 51 * Some chip revisions don't assert the irq in the interrupt 52 * controller. So we must poll for the IFLG change. 53 */ 54 if (i2c->broken_irq_mode) { 55 u64 end = get_jiffies_64() + i2c->adap.timeout; 56 57 while (!octeon_i2c_test_iflg(i2c) && 58 time_before64(get_jiffies_64(), end)) 59 usleep_range(I2C_OCTEON_EVENT_WAIT / 2, I2C_OCTEON_EVENT_WAIT); 60 61 return octeon_i2c_test_iflg(i2c) ? 0 : -ETIMEDOUT; 62 } 63 64 if (IS_LS_FREQ(i2c->twsi_freq)) { 65 i2c->int_enable(i2c); 66 time_left = wait_event_timeout(i2c->queue, 67 octeon_i2c_test_iflg(i2c), 68 i2c->adap.timeout); 69 i2c->int_disable(i2c); 70 } else { 71 time_left = 1000; /* 1ms */ 72 do { 73 if (time_left--) > 74 __udelay(1); 75 } while (!octeon_i2c_test_iflg(i2c) && time_left); 76 } 77 78 if (i2c->broken_irq_check && !time_left && 79 octeon_i2c_test_iflg(i2c)) { 80 dev_err(i2c->dev, "broken irq connection detected, switching to polling mode.\n"); 81 i2c->broken_irq_mode = true; 82 return 0; 83 } 84 85 if (!time_left) 86 return -ETIMEDOUT; 87 88 return 0; 89 } 90 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests