drivers/i2c/busses/i2c-xgene-slimpro.c:153:38: sparse: sparse: incorrect type in argument 1 (different address spaces)

From: kernel test robot

Date: Thu Jun 11 2026 - 20:04:10 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 9716c086c8e8b141d35aa61f2e96a2e83de212a7
commit: 7b174126124560f15e392fe5767face99e61ddb1 i2c: xgene-slimpro: Simplify PCC shared memory region handling
date: 1 year, 1 month ago
config: arm64-randconfig-r112-20260612 (https://download.01.org/0day-ci/archive/20260612/202606120803.iI23w3ER-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 13.4.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260612/202606120803.iI23w3ER-lkp@xxxxxxxxx/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: 7b1741261245 ("i2c: xgene-slimpro: Simplify PCC shared memory region handling")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606120803.iI23w3ER-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
drivers/i2c/busses/i2c-xgene-slimpro.c:121:15: sparse: sparse: cast to restricted __le16
drivers/i2c/busses/i2c-xgene-slimpro.c:124:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short volatile @@ got restricted __le16 [usertype] @@
drivers/i2c/busses/i2c-xgene-slimpro.c:124:9: sparse: expected unsigned short volatile
drivers/i2c/busses/i2c-xgene-slimpro.c:124:9: sparse: got restricted __le16 [usertype]
>> drivers/i2c/busses/i2c-xgene-slimpro.c:153:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned short [usertype] *addr @@ got unsigned short [noderef] __iomem * @@
drivers/i2c/busses/i2c-xgene-slimpro.c:153:38: sparse: expected unsigned short [usertype] *addr
drivers/i2c/busses/i2c-xgene-slimpro.c:153:38: sparse: got unsigned short [noderef] __iomem *
drivers/i2c/busses/i2c-xgene-slimpro.c:157:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected unsigned short [usertype] *addr @@ got unsigned short [noderef] __iomem * @@
drivers/i2c/busses/i2c-xgene-slimpro.c:157:37: sparse: expected unsigned short [usertype] *addr
drivers/i2c/busses/i2c-xgene-slimpro.c:157:37: sparse: got unsigned short [noderef] __iomem *
drivers/i2c/busses/i2c-xgene-slimpro.c:159:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *msg @@ got struct acpi_pcct_shared_memory [noderef] __iomem * @@
drivers/i2c/busses/i2c-xgene-slimpro.c:159:21: sparse: expected void *msg
drivers/i2c/busses/i2c-xgene-slimpro.c:159:21: sparse: got struct acpi_pcct_shared_memory [noderef] __iomem *
drivers/i2c/busses/i2c-xgene-slimpro.c:173:21: sparse: sparse: cast removes address space '__iomem' of expression
drivers/i2c/busses/i2c-xgene-slimpro.c:177:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/i2c/busses/i2c-xgene-slimpro.c:177:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile @@ got restricted __le32 [usertype] @@
drivers/i2c/busses/i2c-xgene-slimpro.c:177:9: sparse: expected unsigned int volatile
drivers/i2c/busses/i2c-xgene-slimpro.c:177:9: sparse: got restricted __le32 [usertype]
drivers/i2c/busses/i2c-xgene-slimpro.c:180:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/i2c/busses/i2c-xgene-slimpro.c:180:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short volatile @@ got restricted __le16 [usertype] @@
drivers/i2c/busses/i2c-xgene-slimpro.c:180:9: sparse: expected unsigned short volatile
drivers/i2c/busses/i2c-xgene-slimpro.c:180:9: sparse: got restricted __le16 [usertype]
drivers/i2c/busses/i2c-xgene-slimpro.c:183:18: sparse: sparse: cast removes address space '__iomem' of expression
drivers/i2c/busses/i2c-xgene-slimpro.c:183:18: sparse: sparse: cast to restricted __le16
drivers/i2c/busses/i2c-xgene-slimpro.c:185:9: sparse: sparse: cast removes address space '__iomem' of expression
drivers/i2c/busses/i2c-xgene-slimpro.c:185:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short volatile @@ got restricted __le16 [usertype] @@
drivers/i2c/busses/i2c-xgene-slimpro.c:185:9: sparse: expected unsigned short volatile
drivers/i2c/busses/i2c-xgene-slimpro.c:185:9: sparse: got restricted __le16 [usertype]
drivers/i2c/busses/i2c-xgene-slimpro.c:189:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int volatile @@ got restricted __le32 [usertype] @@
drivers/i2c/busses/i2c-xgene-slimpro.c:189:17: sparse: expected unsigned int volatile
drivers/i2c/busses/i2c-xgene-slimpro.c:189:17: sparse: got restricted __le32 [usertype]

vim +153 drivers/i2c/busses/i2c-xgene-slimpro.c

f6505fbabc426b9 Feng Kan 2015-04-24 145
df5da47fe722e36 Hoan Tran 2017-04-24 146 static void slimpro_i2c_pcc_rx_cb(struct mbox_client *cl, void *msg)
df5da47fe722e36 Hoan Tran 2017-04-24 147 {
df5da47fe722e36 Hoan Tran 2017-04-24 148 struct slimpro_i2c_dev *ctx = to_slimpro_i2c_dev(cl);
7b174126124560f Sudeep Holla 2025-04-11 149 struct acpi_pcct_shared_memory __iomem *generic_comm_base =
7b174126124560f Sudeep Holla 2025-04-11 150 ctx->pcc_chan->shmem;
df5da47fe722e36 Hoan Tran 2017-04-24 151
df5da47fe722e36 Hoan Tran 2017-04-24 152 /* Check if platform sends interrupt */
df5da47fe722e36 Hoan Tran 2017-04-24 @153 if (!xgene_word_tst_and_clr(&generic_comm_base->status,
89a4ad1f437c049 Sudeep Holla 2023-09-27 154 PCC_STATUS_SCI_DOORBELL))
df5da47fe722e36 Hoan Tran 2017-04-24 155 return;
df5da47fe722e36 Hoan Tran 2017-04-24 156
df5da47fe722e36 Hoan Tran 2017-04-24 157 if (xgene_word_tst_and_clr(&generic_comm_base->status,
89a4ad1f437c049 Sudeep Holla 2023-09-27 158 PCC_STATUS_CMD_COMPLETE)) {
df5da47fe722e36 Hoan Tran 2017-04-24 159 msg = generic_comm_base + 1;
df5da47fe722e36 Hoan Tran 2017-04-24 160
df5da47fe722e36 Hoan Tran 2017-04-24 161 /* Response message msg[1] contains the return value. */
df5da47fe722e36 Hoan Tran 2017-04-24 162 if (ctx->resp_msg)
df5da47fe722e36 Hoan Tran 2017-04-24 163 *ctx->resp_msg = ((u32 *)msg)[1];
df5da47fe722e36 Hoan Tran 2017-04-24 164
df5da47fe722e36 Hoan Tran 2017-04-24 165 complete(&ctx->rd_complete);
df5da47fe722e36 Hoan Tran 2017-04-24 166 }
df5da47fe722e36 Hoan Tran 2017-04-24 167 }
df5da47fe722e36 Hoan Tran 2017-04-24 168

:::::: The code at line 153 was first introduced by commit
:::::: df5da47fe722e36055b97134e6bb9df58c12495c i2c: xgene-slimpro: Add ACPI support by using PCC mailbox

:::::: TO: Hoan Tran <hotran@xxxxxxx>
:::::: CC: Wolfram Sang <wsa@xxxxxxxxxxxxx>

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