All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Thomas Weißschuh " <thomas.weissschuh@linutronix.de>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Shuah Khan <skhan@linuxfoundation.org>,
	Johannes Berg <johannes@sipsolutions.net>,
	David Gow <davidgow@google.com>
Subject: drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: incorrect type in argument 1 (different base types)
Date: Sun, 19 Jul 2026 05:51:04 +0800	[thread overview]
Message-ID: <202607190503.J3EjpoyD-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   94515f3a7d4256a5062176b7d6ed0471938cd51a
commit: 031cdd3bc3f369553933c1b0f4cb18000162c8ff kunit: Enable PCI on UML without triggering WARN()
date:   10 months ago
config: um-randconfig-r133-20260718 (https://download.01.org/0day-ci/archive/20260719/202607190503.J3EjpoyD-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260719/202607190503.J3EjpoyD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: 031cdd3bc3f3 ("kunit: Enable PCI on UML without triggering WARN()")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202607190503.J3EjpoyD-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned long long [usertype] val @@     got restricted __be64 [addressable] [usertype] buf @@
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse:     expected unsigned long long [usertype] val
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse:     got restricted __be64 [addressable] [usertype] buf
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: cast from restricted __be64
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: cast from restricted __be64
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: cast from restricted __be64
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: cast from restricted __be64
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: cast from restricted __be64
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: cast from restricted __be64
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: cast from restricted __be64
   drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: cast from restricted __be64
   drivers/i2c/busses/i2c-octeon-core.c:732:42: sparse: sparse: cast from restricted __be64

vim +731 drivers/i2c/busses/i2c-octeon-core.c

63ef02da5ddb72 Aryan Srivastava 2025-03-25  688  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  689  /**
63ef02da5ddb72 Aryan Srivastava 2025-03-25  690   * octeon_i2c_hlc_block_comp_write - high-level-controller composite block write
63ef02da5ddb72 Aryan Srivastava 2025-03-25  691   * @i2c: The struct octeon_i2c
63ef02da5ddb72 Aryan Srivastava 2025-03-25  692   * @msgs: msg[0] contains address, msg[1] contains data to be written
63ef02da5ddb72 Aryan Srivastava 2025-03-25  693   *
63ef02da5ddb72 Aryan Srivastava 2025-03-25  694   * i2c core command is constructed and write data is written into the FIFO buffer.
63ef02da5ddb72 Aryan Srivastava 2025-03-25  695   * The execution of the command will result in HW write, using the data in FIFO.
63ef02da5ddb72 Aryan Srivastava 2025-03-25  696   * Used in the case where the i2c xfer is for greater than 8 bytes of write data.
63ef02da5ddb72 Aryan Srivastava 2025-03-25  697   *
63ef02da5ddb72 Aryan Srivastava 2025-03-25  698   * Returns: 0 on success, otherwise a negative errno.
63ef02da5ddb72 Aryan Srivastava 2025-03-25  699   */
63ef02da5ddb72 Aryan Srivastava 2025-03-25  700  static int octeon_i2c_hlc_block_comp_write(struct octeon_i2c *i2c, struct i2c_msg *msgs)
63ef02da5ddb72 Aryan Srivastava 2025-03-25  701  {
63ef02da5ddb72 Aryan Srivastava 2025-03-25  702  	bool set_ext;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  703  	int ret;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  704  	u16 len, i;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  705  	u64 cmd, ext = 0;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  706  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  707  	octeon_i2c_hlc_enable(i2c);
63ef02da5ddb72 Aryan Srivastava 2025-03-25  708  	octeon_i2c_block_enable(i2c);
63ef02da5ddb72 Aryan Srivastava 2025-03-25  709  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  710  	/* Write (size - 1) into block control register */
63ef02da5ddb72 Aryan Srivastava 2025-03-25  711  	len = msgs[1].len - 1;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  712  	octeon_i2c_writeq_flush((u64)len, i2c->twsi_base + OCTEON_REG_BLOCK_CTL(i2c));
63ef02da5ddb72 Aryan Srivastava 2025-03-25  713  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  714  	/* Prepare core command */
63ef02da5ddb72 Aryan Srivastava 2025-03-25  715  	cmd = SW_TWSI_V | SW_TWSI_SOVR | SW_TWSI_OP_7_IA;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  716  	cmd |= (u64)(msgs[0].addr & 0x7full) << SW_TWSI_ADDR_SHIFT;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  717  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  718  	/* Set parameters for extended message (if required) */
63ef02da5ddb72 Aryan Srivastava 2025-03-25  719  	set_ext = octeon_i2c_hlc_ext(i2c, msgs[0], &cmd, &ext);
63ef02da5ddb72 Aryan Srivastava 2025-03-25  720  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  721  	/* Write msg into FIFO buffer */
63ef02da5ddb72 Aryan Srivastava 2025-03-25  722  	octeon_i2c_writeq_flush(TWSX_BLOCK_STS_RESET_PTR,
63ef02da5ddb72 Aryan Srivastava 2025-03-25  723  				i2c->twsi_base + OCTEON_REG_BLOCK_STS(i2c));
63ef02da5ddb72 Aryan Srivastava 2025-03-25  724  	for (i = 0; i <= len; i += 8) {
63ef02da5ddb72 Aryan Srivastava 2025-03-25  725  		__be64 buf = 0;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  726  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  727  		/* Copy 8 bytes or remaining bytes from message buffer */
63ef02da5ddb72 Aryan Srivastava 2025-03-25  728  		memcpy(&buf, &msgs[1].buf[i], min(8, msgs[1].len - i));
63ef02da5ddb72 Aryan Srivastava 2025-03-25  729  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  730  		/* Byte-swap message data and write into FIFO */
63ef02da5ddb72 Aryan Srivastava 2025-03-25 @731  		buf = cpu_to_be64(buf);
63ef02da5ddb72 Aryan Srivastava 2025-03-25  732  		octeon_i2c_writeq_flush((u64)buf, i2c->twsi_base + OCTEON_REG_BLOCK_FIFO(i2c));
63ef02da5ddb72 Aryan Srivastava 2025-03-25  733  	}
63ef02da5ddb72 Aryan Srivastava 2025-03-25  734  	if (set_ext)
63ef02da5ddb72 Aryan Srivastava 2025-03-25  735  		octeon_i2c_writeq_flush(ext, i2c->twsi_base + OCTEON_REG_SW_TWSI_EXT(i2c));
63ef02da5ddb72 Aryan Srivastava 2025-03-25  736  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  737  	/* Send command to core (send data in FIFO) */
63ef02da5ddb72 Aryan Srivastava 2025-03-25  738  	ret = octeon_i2c_hlc_cmd_send(i2c, cmd);
63ef02da5ddb72 Aryan Srivastava 2025-03-25  739  	if (ret)
63ef02da5ddb72 Aryan Srivastava 2025-03-25  740  		goto err;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  741  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  742  	cmd = __raw_readq(i2c->twsi_base + OCTEON_REG_SW_TWSI(i2c));
63ef02da5ddb72 Aryan Srivastava 2025-03-25  743  	if ((cmd & SW_TWSI_R) == 0) {
63ef02da5ddb72 Aryan Srivastava 2025-03-25  744  		octeon_i2c_block_disable(i2c);
63ef02da5ddb72 Aryan Srivastava 2025-03-25  745  		return octeon_i2c_check_status(i2c, false);
63ef02da5ddb72 Aryan Srivastava 2025-03-25  746  	}
63ef02da5ddb72 Aryan Srivastava 2025-03-25  747  
63ef02da5ddb72 Aryan Srivastava 2025-03-25  748  err:
63ef02da5ddb72 Aryan Srivastava 2025-03-25  749  	octeon_i2c_block_disable(i2c);
63ef02da5ddb72 Aryan Srivastava 2025-03-25  750  	return ret;
63ef02da5ddb72 Aryan Srivastava 2025-03-25  751  }
63ef02da5ddb72 Aryan Srivastava 2025-03-25  752  

:::::: The code at line 731 was first introduced by commit
:::::: 63ef02da5ddb725555cd41f125ec0bd8e893da3a i2c: octeon: add block-mode i2c operations

:::::: TO: Aryan Srivastava <aryan.srivastava@alliedtelesis.co.nz>
:::::: CC: Andi Shyti <andi@smida.it>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

             reply	other threads:[~2026-07-18 21:51 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-18 21:51 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-06-12  1:10 drivers/i2c/busses/i2c-octeon-core.c:731:23: sparse: sparse: incorrect type in argument 1 (different base types) kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202607190503.J3EjpoyD-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=davidgow@google.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=skhan@linuxfoundation.org \
    --cc=thomas.weissschuh@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.