drivers/video/fbdev/au1100fb.c:492:33: sparse: sparse: incorrect type in assignment (different address spaces)
From: kernel test robot
Date: Mon Jun 22 2026 - 18:48:12 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4708cac0e22cfd217f48f7cec3c35e5922efcccd
commit: 6f366e86481a7503a821de82930df517dddd4047 fbdev: au1100fb: Make driver compilable on non-mips platforms
date: 4 months ago
config: hexagon-randconfig-r122-20260622 (https://download.01.org/0day-ci/archive/20260623/202606230656.aMh4MdfZ-lkp@xxxxxxxxx/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260623/202606230656.aMh4MdfZ-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: 6f366e86481a ("fbdev: au1100fb: Make driver compilable on non-mips platforms")
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202606230656.aMh4MdfZ-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
>> drivers/video/fbdev/au1100fb.c:492:33: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char [noderef] __iomem *screen_base @@ got unsigned char *fb_mem @@
drivers/video/fbdev/au1100fb.c:492:33: sparse: expected char [noderef] __iomem *screen_base
drivers/video/fbdev/au1100fb.c:492:33: sparse: got unsigned char *fb_mem
vim +492 drivers/video/fbdev/au1100fb.c
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 404
48c68c4f1b54244 drivers/video/au1100fb.c Greg Kroah-Hartman 2012-12-21 405 static int au1100fb_drv_probe(struct platform_device *dev)
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 406 {
46953e6aab262dc drivers/video/fbdev/au1100fb.c Markus Elfring 2018-03-28 407 struct au1100fb_device *fbdev;
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 408 struct resource *regs_res;
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 409 struct clk *c;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 410
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 411 /* Allocate new device private */
db66f0252e2f17a drivers/video/fbdev/au1100fb.c Markus Elfring 2018-03-28 412 fbdev = devm_kzalloc(&dev->dev, sizeof(*fbdev), GFP_KERNEL);
29914badc59b23e drivers/video/fbdev/au1100fb.c Markus Elfring 2018-03-28 413 if (!fbdev)
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 414 return -ENOMEM;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 415
d121c3f3cedb846 drivers/video/au1100fb.c Manuel Lauss 2011-09-30 416 if (au1100fb_setup(fbdev))
d121c3f3cedb846 drivers/video/au1100fb.c Manuel Lauss 2011-09-30 417 goto failed;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 418
7a192ec334cab9f drivers/video/au1100fb.c Ming Lei 2009-02-06 419 platform_set_drvdata(dev, (void *)fbdev);
67f30ad19c4b329 drivers/video/fbdev/au1100fb.c Christoph Hellwig 2019-04-28 420 fbdev->dev = &dev->dev;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 421
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 422 /* Allocate region for our registers and map them */
d121c3f3cedb846 drivers/video/au1100fb.c Manuel Lauss 2011-09-30 423 regs_res = platform_get_resource(dev, IORESOURCE_MEM, 0);
d121c3f3cedb846 drivers/video/au1100fb.c Manuel Lauss 2011-09-30 424 if (!regs_res) {
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 425 print_err("fail to retrieve registers resource");
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 426 return -EFAULT;
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 427 }
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 428
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 429 fbdev->info.fix = (struct fb_fix_screeninfo) {
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 430 .mmio_start = regs_res->start,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 431 .mmio_len = resource_size(regs_res),
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 432 .id = "AU1100 FB",
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 433 .xpanstep = 1,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 434 .ypanstep = 1,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 435 .type = FB_TYPE_PACKED_PIXELS,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 436 .accel = FB_ACCEL_NONE,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 437 };
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 438
93019734555f8df drivers/video/au1100fb.c Manuel Lauss 2012-03-24 439 if (!devm_request_mem_region(&dev->dev,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 440 fbdev->info.fix.mmio_start,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 441 fbdev->info.fix.mmio_len,
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 442 DRIVER_NAME)) {
c05b7f3d12b9455 drivers/video/au1100fb.c Rodolfo Giometti 2006-05-30 443 print_err("fail to lock memory region at 0x%08lx",
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 444 fbdev->info.fix.mmio_start);
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 445 return -EBUSY;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 446 }
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 447
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 448 fbdev->regs = (struct au1100fb_regs*)KSEG1ADDR(fbdev->info.fix.mmio_start);
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 449
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 450 print_dbg("Register memory map at %p", fbdev->regs);
13c89a37c6f6f33 drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 451 print_dbg("phys=0x%08x, size=%zu", fbdev->regs_phys, fbdev->regs_len);
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 452
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 453 c = clk_get(NULL, "lcd_intclk");
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 454 if (!IS_ERR(c)) {
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 455 fbdev->lcdclk = c;
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 456 clk_set_rate(c, 48000000);
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 457 clk_prepare_enable(c);
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 458 }
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 459
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 460 /* Allocate the framebuffer to the maximum screen size * nbr of video buffers */
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 461 fbdev->fb_len = fbdev->panel->xres * fbdev->panel->yres *
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 462 (fbdev->panel->bpp >> 3) * AU1100FB_NBR_VIDEO_BUFFERS;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 463
93019734555f8df drivers/video/au1100fb.c Manuel Lauss 2012-03-24 464 fbdev->fb_mem = dmam_alloc_coherent(&dev->dev,
1c16697bf9d5b20 drivers/video/au1100fb.c Julia Lawall 2012-01-21 465 PAGE_ALIGN(fbdev->fb_len),
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 466 &fbdev->fb_phys, GFP_KERNEL);
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 467 if (!fbdev->fb_mem) {
13c89a37c6f6f33 drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 468 print_err("fail to allocate framebuffer (size: %zuK))",
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 469 fbdev->fb_len / 1024);
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 470 return -ENOMEM;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 471 }
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 472
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 473 fbdev->info.fix.smem_start = fbdev->fb_phys;
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 474 fbdev->info.fix.smem_len = fbdev->fb_len;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 475
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 476 print_dbg("Framebuffer memory map at %p", fbdev->fb_mem);
13c89a37c6f6f33 drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 477 print_dbg("phys=0x%pad, size=%zuK", &fbdev->fb_phys, fbdev->fb_len / 1024);
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 478
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 479 /* load the panel info into the var struct */
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 480 fbdev->info.var = (struct fb_var_screeninfo) {
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 481 .activate = FB_ACTIVATE_NOW,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 482 .height = -1,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 483 .width = -1,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 484 .vmode = FB_VMODE_NONINTERLACED,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 485 .bits_per_pixel = fbdev->panel->bpp,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 486 .xres = fbdev->panel->xres,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 487 .xres_virtual = fbdev->panel->xres,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 488 .yres = fbdev->panel->yres,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 489 .yres_virtual = fbdev->panel->yres,
7939cecdc6fa39e drivers/video/fbdev/au1100fb.c Uwe Kleine-König 2026-02-16 490 };
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 491
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 @492 fbdev->info.screen_base = fbdev->fb_mem;
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 493 fbdev->info.fbops = &au1100fb_ops;
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 494
1c16697bf9d5b20 drivers/video/au1100fb.c Julia Lawall 2012-01-21 495 fbdev->info.pseudo_palette =
a86854d0c599b32 drivers/video/fbdev/au1100fb.c Kees Cook 2018-06-12 496 devm_kcalloc(&dev->dev, 16, sizeof(u32), GFP_KERNEL);
1c16697bf9d5b20 drivers/video/au1100fb.c Julia Lawall 2012-01-21 497 if (!fbdev->info.pseudo_palette)
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 498 return -ENOMEM;
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 499
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 500 if (fb_alloc_cmap(&fbdev->info.cmap, AU1100_LCD_NBR_PALETTE_ENTRIES, 0) < 0) {
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 501 print_err("Fail to allocate colormap (%d entries)",
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 502 AU1100_LCD_NBR_PALETTE_ENTRIES);
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 503 return -EFAULT;
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 504 }
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 505
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 506 /* Set h/w registers */
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 507 au1100fb_setmode(fbdev);
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 508
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 509 /* Register new framebuffer */
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 510 if (register_framebuffer(&fbdev->info) < 0) {
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 511 print_err("cannot register new framebuffer");
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 512 goto failed;
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 513 }
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 514
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 515 return 0;
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 516
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 517 failed:
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 518 if (fbdev->lcdclk) {
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 519 clk_disable_unprepare(fbdev->lcdclk);
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 520 clk_put(fbdev->lcdclk);
6b1889c14b4606b drivers/video/fbdev/au1100fb.c Manuel Lauss 2014-07-23 521 }
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 522 if (fbdev->info.cmap.len != 0) {
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 523 fb_dealloc_cmap(&fbdev->info.cmap);
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 524 }
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 525
1c16697bf9d5b20 drivers/video/au1100fb.c Julia Lawall 2012-01-21 526 return -ENODEV;
3b495f2bb749b82 drivers/video/au1100fb.c Pete Popov 2005-04-04 527 }
^1da177e4c3f415 drivers/video/au1100fb.c Linus Torvalds 2005-04-16 528
:::::: The code at line 492 was first introduced by commit
:::::: 3b495f2bb749b828499135743b9ddec46e34fda8 Au1100 FB driver uplift for 2.6.
:::::: TO: Pete Popov <ppopov@xxxxxxxxxxxxxxxxx>
:::::: CC: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki