drivers/remoteproc/mtk_scp.c:306:39: sparse: sparse: incorrect type in argument 2 (different address spaces)

From: kernel test robot
Date: Sun Nov 01 2020 - 09:34:58 EST


Hi Bjorn,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: c2dc4c073fb71b50904493657a7622b481b346e3
commit: 141bc97c1bfe31397b2a12e5676d0c2692c8e07e remoteproc/mediatek: Remove non-standard dsb()
date: 2 weeks ago
config: nios2-randconfig-s031-20201101 (attached as .config)
compiler: nios2-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-76-gf680124b-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=141bc97c1bfe31397b2a12e5676d0c2692c8e07e
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 141bc97c1bfe31397b2a12e5676d0c2692c8e07e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=nios2

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


"sparse warnings: (new ones prefixed by >>)"
>> drivers/remoteproc/mtk_scp.c:306:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *addr @@
>> drivers/remoteproc/mtk_scp.c:306:39: sparse: expected void volatile [noderef] __iomem *addr
>> drivers/remoteproc/mtk_scp.c:306:39: sparse: got void *addr
drivers/remoteproc/mtk_scp.c:307:19: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *addr @@
drivers/remoteproc/mtk_scp.c:307:19: sparse: expected void volatile [noderef] __iomem *addr
drivers/remoteproc/mtk_scp.c:307:19: sparse: got void *addr
drivers/remoteproc/mtk_scp.c:314:19: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *addr @@
drivers/remoteproc/mtk_scp.c:314:19: sparse: expected void volatile [noderef] __iomem *addr
drivers/remoteproc/mtk_scp.c:314:19: sparse: got void *addr
drivers/remoteproc/mtk_scp.c:316:39: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *addr @@
drivers/remoteproc/mtk_scp.c:316:39: sparse: expected void volatile [noderef] __iomem *addr
drivers/remoteproc/mtk_scp.c:316:39: sparse: got void *addr
>> drivers/remoteproc/mtk_scp.c:327:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
>> drivers/remoteproc/mtk_scp.c:327:44: sparse: expected void *addr
>> drivers/remoteproc/mtk_scp.c:327:44: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:328:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:328:44: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:328:44: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:329:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:329:44: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:329:44: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:330:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:330:44: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:330:44: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:331:44: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:331:44: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:331:44: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:431:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:431:45: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:431:45: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:432:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:432:45: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:432:45: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:433:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:433:45: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:433:45: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:434:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:434:45: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:434:45: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:435:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *addr @@ got void [noderef] __iomem * @@
drivers/remoteproc/mtk_scp.c:435:45: sparse: expected void *addr
drivers/remoteproc/mtk_scp.c:435:45: sparse: got void [noderef] __iomem *
drivers/remoteproc/mtk_scp.c:559:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *cpu_addr @@ got void * @@
drivers/remoteproc/mtk_scp.c:559:23: sparse: expected void [noderef] __iomem *cpu_addr
drivers/remoteproc/mtk_scp.c:559:23: sparse: got void *
drivers/remoteproc/mtk_scp.c:572:56: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void *cpu_addr @@ got void [noderef] __iomem *cpu_addr @@
drivers/remoteproc/mtk_scp.c:572:56: sparse: expected void *cpu_addr
drivers/remoteproc/mtk_scp.c:572:56: sparse: got void [noderef] __iomem *cpu_addr

vim +306 drivers/remoteproc/mtk_scp.c

fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 300
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 301 static void mt8192_power_on_sram(void *addr)
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 302 {
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 303 int i;
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 304
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 305 for (i = 31; i >= 0; i--)
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 @306 writel(GENMASK(i, 0), addr);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 @307 writel(0, addr);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 308 }
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 309
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 310 static void mt8192_power_off_sram(void *addr)
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 311 {
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 312 int i;
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 313
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 314 writel(0, addr);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 315 for (i = 0; i < 32; i++)
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 316 writel(GENMASK(i, 0), addr);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 317 }
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 318
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 319 static int mt8192_scp_before_load(struct mtk_scp *scp)
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 320 {
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 321 /* clear SPM interrupt, SCP2SPM_IPC_CLR */
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 322 writel(0xff, scp->reg_base + MT8192_SCP2SPM_IPC_CLR);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 323
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 324 writel(1, scp->reg_base + MT8192_CORE0_SW_RSTN_SET);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 325
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 326 /* enable SRAM clock */
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 @327 mt8192_power_on_sram(scp->reg_base + MT8192_L2TCM_SRAM_PD_0);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 328 mt8192_power_on_sram(scp->reg_base + MT8192_L2TCM_SRAM_PD_1);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 329 mt8192_power_on_sram(scp->reg_base + MT8192_L2TCM_SRAM_PD_2);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 330 mt8192_power_on_sram(scp->reg_base + MT8192_L1TCM_SRAM_PDN);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 331 mt8192_power_on_sram(scp->reg_base + MT8192_CPU0_SRAM_PD);
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 332
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 333 return 0;
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 334 }
fd0b6c1ff85a48 Pi-Hsun Shih 2020-09-21 335

:::::: The code at line 306 was first introduced by commit
:::::: fd0b6c1ff85a489bcf1bcf58af64da1aeffd39f0 remoteproc/mediatek: Add support for mt8192 SCP

:::::: TO: Pi-Hsun Shih <pihsun@xxxxxxxxxxxx>
:::::: CC: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip