Re: [PATCH 2/3] i2c: thunderx: Add support for High speed mode

From: kernel test robot
Date: Thu Mar 30 2023 - 11:47:54 EST


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-allmodconfig (https://download.01.org/0day-ci/archive/20230330/202303302309.SSHrlrqN-lkp@xxxxxxxxx/config)
compiler: riscv64-linux-gcc (GCC) 12.1.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/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=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=riscv olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 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/202303302309.SSHrlrqN-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

drivers/i2c/busses/i2c-octeon-core.c: In function 'octeon_i2c_wait':
>> drivers/i2c/busses/i2c-octeon-core.c:74:33: error: implicit declaration of function '__udelay'; did you mean '__delay'? [-Werror=implicit-function-declaration]
74 | __udelay(1);
| ^~~~~~~~
| __delay
cc1: some warnings being treated as errors


vim +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