drivers/spi/spi-pci1xxxx.c:373:9: sparse: sparse: incorrect type in argument 1 (different address spaces)

From: kernel test robot
Date: Sun Jul 28 2024 - 13:01:23 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5437f30d3458ad36e83ab96088d490ebfee844d8
commit: 9538edeb72c989a4b90964ae4bba107eaf21a791 spi: mchp-pci1xxxx: DMA support for copying data to and from SPI Buf
date: 6 months ago
config: sh-randconfig-r133-20240727 (https://download.01.org/0day-ci/archive/20240729/202407290017.blX9ckyE-lkp@xxxxxxxxx/config)
compiler: sh4-linux-gcc (GCC) 14.1.0
reproduce: (https://download.01.org/0day-ci/archive/20240729/202407290017.blX9ckyE-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
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407290017.blX9ckyE-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
drivers/spi/spi-pci1xxxx.c:369:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@
drivers/spi/spi-pci1xxxx.c:369:22: sparse: expected void *base
drivers/spi/spi-pci1xxxx.c:369:22: sparse: got void [noderef] __iomem *
drivers/spi/spi-pci1xxxx.c:371:22: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *base @@ got void [noderef] __iomem * @@
drivers/spi/spi-pci1xxxx.c:371:22: sparse: expected void *base
drivers/spi/spi-pci1xxxx.c:371:22: sparse: got void [noderef] __iomem *
>> drivers/spi/spi-pci1xxxx.c:373:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void * @@
drivers/spi/spi-pci1xxxx.c:373:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-pci1xxxx.c:373:9: sparse: got void *
drivers/spi/spi-pci1xxxx.c:374:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void * @@
drivers/spi/spi-pci1xxxx.c:374:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-pci1xxxx.c:374:9: sparse: got void *
drivers/spi/spi-pci1xxxx.c:375:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void * @@
drivers/spi/spi-pci1xxxx.c:375:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-pci1xxxx.c:375:9: sparse: got void *
drivers/spi/spi-pci1xxxx.c:376:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void * @@
drivers/spi/spi-pci1xxxx.c:376:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-pci1xxxx.c:376:9: sparse: got void *
drivers/spi/spi-pci1xxxx.c:377:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void * @@
drivers/spi/spi-pci1xxxx.c:377:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-pci1xxxx.c:377:9: sparse: got void *
drivers/spi/spi-pci1xxxx.c:379:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *ptr @@ got void * @@
drivers/spi/spi-pci1xxxx.c:379:9: sparse: expected void const volatile [noderef] __iomem *ptr
drivers/spi/spi-pci1xxxx.c:379:9: sparse: got void *

vim +373 drivers/spi/spi-pci1xxxx.c

362
363 static void pci1xxxx_spi_setup_dma_from_io(struct pci1xxxx_spi_internal *p,
364 dma_addr_t dma_addr, u32 len)
365 {
366 void *base;
367
368 if (!p->hw_inst)
> 369 base = p->parent->dma_offset_bar + SPI_DMA_CH0_WR_BASE;
370 else
371 base = p->parent->dma_offset_bar + SPI_DMA_CH1_WR_BASE;
372
> 373 writel(DMA_INTR_EN, base + SPI_DMA_CH_CTL1_OFFSET);
374 writel(len, base + SPI_DMA_CH_XFER_LEN_OFFSET);
375 writel(lower_32_bits(dma_addr), base + SPI_DMA_CH_DAR_LO_OFFSET);
376 writel(upper_32_bits(dma_addr), base + SPI_DMA_CH_DAR_HI_OFFSET);
377 writel(lower_32_bits(SPI_PERI_ADDR_BASE + SPI_MST_RSP_BUF_OFFSET(p->hw_inst)),
378 base + SPI_DMA_CH_SAR_LO_OFFSET);
379 writel(upper_32_bits(SPI_PERI_ADDR_BASE + SPI_MST_RSP_BUF_OFFSET(p->hw_inst)),
380 base + SPI_DMA_CH_SAR_HI_OFFSET);
381 }
382

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