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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux