[PATCH] regmap-i2c: fix sparse warning in regmap_smbus_word_write_reg16

Nishanth Sampath Kumar posted 1 patch 5 days, 8 hours ago
There is a newer version of this series
drivers/base/regmap/regmap-i2c.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] regmap-i2c: fix sparse warning in regmap_smbus_word_write_reg16
Posted by Nishanth Sampath Kumar 5 days, 8 hours ago
From 12085a8445d18202a59e3558118f74db32673b17 Mon Sep 17 00:00:00 2001
From: Nishanth Sampath Kumar <nissampa@cisco.com>
Date: Tue, 19 May 2026 09:41:53 -0700
Subject: [PATCH] regmap-i2c: fix sparse warning in
 regmap_smbus_word_write_reg16

i2c_smbus_write_word_data() expects a plain u16, but cpu_to_le16()
returns __le16 (a sparse-restricted endian type), causing:

  drivers/base/regmap/regmap-i2c.c:340: sparse: incorrect type in
  argument 3 (different base types)
    expected unsigned short [usertype] value
    got restricted __le16 [usertype]

SMBus already defines byte ordering internally, so cpu_to_le16() is
wrong here. Replace it with a plain (u16) cast.

Fixes: bad4bd28abf4 ("regmap-i2c: add SMBus byte/word reg16 bus for adapters lacking I2C_FUNC_I2C")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202605161621.mY5zFh4D-lkp@intel.com/
Signed-off-by: Nishanth Sampath Kumar <nissampa@cisco.com>
---
 drivers/base/regmap/regmap-i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/base/regmap/regmap-i2c.c b/drivers/base/regmap/regmap-i2c.c
index 31e30dfced19..9102d8b20896 100644
--- a/drivers/base/regmap/regmap-i2c.c
+++ b/drivers/base/regmap/regmap-i2c.c
@@ -337,7 +337,7 @@ static int regmap_smbus_word_write_reg16(void *context, const void *data,
 	val = ((u8 *)data)[2];
 
 	return i2c_smbus_write_word_data(i2c, addr_hi,
-					 cpu_to_le16(((u16)val << 8) | addr_lo));
+					(u16)(((u16)val << 8) | addr_lo));
 }
 
 static const struct regmap_bus regmap_smbus_byte_word_reg16 = {
-- 
2.25.1

Re: [PATCH] regmap-i2c: fix sparse warning in regmap_smbus_word_write_reg16
Posted by Mark Brown 5 days, 8 hours ago
On Tue, May 19, 2026 at 04:52:05PM +0000, Nishanth Sampath Kumar wrote:
> From 12085a8445d18202a59e3558118f74db32673b17 Mon Sep 17 00:00:00 2001
> From: Nishanth Sampath Kumar <nissampa@cisco.com>
> Date: Tue, 19 May 2026 09:41:53 -0700
> Subject: [PATCH] regmap-i2c: fix sparse warning in
>  regmap_smbus_word_write_reg16

Please post the patch as covered in submitting-patches.rst, not as an
attachment.  If you're having trouble with your mail server b4 send is
helpful:

   https://b4.docs.kernel.org/en/latest/contributor/overview.html

>  	return i2c_smbus_write_word_data(i2c, addr_hi,
> -					 cpu_to_le16(((u16)val << 8) | addr_lo));
> +					(u16)(((u16)val << 8) | addr_lo));

What is the top level (u16) cast doing here?  This is not a legibility
triumph...