drivers/video/fbdev/omap/lcdc.c:642:23: sparse: sparse: incorrect type in assignment (different address spaces)

From: kernel test robot
Date: Fri Dec 08 2023 - 05:01:23 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5e3f5b81de80c98338bcb47c233aebefee5a4801
commit: 804f7f19c2e2928aeb8eafef8379fe8b8d13f98b fbdev: omap: avoid using mach/*.h files
date: 1 year, 8 months ago
config: arm-randconfig-r131-20231117 (https://download.01.org/0day-ci/archive/20231208/202312081728.tFzYY0t8-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231208/202312081728.tFzYY0t8-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/202312081728.tFzYY0t8-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/video/fbdev/omap/lcd_mipid.c:451:23: sparse: sparse: cast to restricted __be32
drivers/video/fbdev/omap/lcd_mipid.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/radix-tree.h, ...):
include/linux/page-flags.h:258:46: sparse: sparse: self-comparison always evaluates to false
--
>> drivers/video/fbdev/omap/lcdc.c:642:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *vaddr @@ got void *static [addressable] [assigned] [toplevel] vram_virt @@
drivers/video/fbdev/omap/lcdc.c:642:23: sparse: expected void [noderef] __iomem *vaddr
drivers/video/fbdev/omap/lcdc.c:642:23: sparse: got void *static [addressable] [assigned] [toplevel] vram_virt
drivers/video/fbdev/omap/lcdc.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/umh.h, include/linux/kmod.h, ...):
include/linux/page-flags.h:258:46: sparse: sparse: self-comparison always evaluates to false
--
>> drivers/video/fbdev/omap/omapfb_main.c:1027:11: sparse: sparse: cast removes address space '__iomem' of expression
drivers/video/fbdev/omap/omapfb_main.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/radix-tree.h, ...):
include/linux/page-flags.h:258:46: sparse: sparse: self-comparison always evaluates to false

vim +642 drivers/video/fbdev/omap/lcdc.c

569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 620
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 621 static int alloc_fbmem(struct omapfb_mem_region *region)
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 622 {
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 623 int bpp;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 624 int frame_size;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 625 struct lcd_panel *panel = lcdc.fbdev->panel;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 626
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 627 bpp = panel->bpp;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 628 if (bpp == 12)
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 629 bpp = 16;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 630 frame_size = PAGE_ALIGN(panel->x_res * bpp / 8 * panel->y_res);
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 631 if (region->size > frame_size)
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 632 frame_size = region->size;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 633 lcdc.vram_size = frame_size;
f6e45661f9be54 drivers/video/fbdev/omap/lcdc.c Luis R. Rodriguez 2016-01-22 634 lcdc.vram_virt = dma_alloc_wc(lcdc.fbdev->dev, lcdc.vram_size,
f6e45661f9be54 drivers/video/fbdev/omap/lcdc.c Luis R. Rodriguez 2016-01-22 635 &lcdc.vram_phys, GFP_KERNEL);
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 636 if (lcdc.vram_virt == NULL) {
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 637 dev_err(lcdc.fbdev->dev, "unable to allocate FB DMA memory\n");
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 638 return -ENOMEM;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 639 }
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 640 region->size = frame_size;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 641 region->paddr = lcdc.vram_phys;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 @642 region->vaddr = lcdc.vram_virt;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 643 region->alloc = 1;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 644
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 645 memset(lcdc.vram_virt, 0, lcdc.vram_size);
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 646
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 647 return 0;
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 648 }
569755c706f0f9 drivers/video/omap/lcdc.c Imre Deak 2007-07-17 649

:::::: The code at line 642 was first introduced by commit
:::::: 569755c706f0f94409edd2ae60b9878cb420844f OMAP: add TI OMAP1 internal LCD controller

:::::: TO: Imre Deak <imre.deak@xxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxxxxxxxx>

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