Hi Bartlomiej, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.1-rc4 next-20190412] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Bartlomiej-Zolnierkiewicz/video-fbdev-imxfb-add-COMPILE_TEST-support/20190413-050928 reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' sparse warnings: (new ones prefixed by >>) >> drivers/video/fbdev/imxfb.c:380:35: sparse: expression using sizeof(void) >> drivers/video/fbdev/imxfb.c:380:35: sparse: expression using sizeof(void) drivers/video/fbdev/imxfb.c:381:35: sparse: expression using sizeof(void) drivers/video/fbdev/imxfb.c:381:35: sparse: expression using sizeof(void) include/linux/slab.h:666:13: sparse: undefined identifier '__builtin_mul_overflow' drivers/video/fbdev/imxfb.c:926:38: sparse: expression using sizeof(void) drivers/video/fbdev/imxfb.c:926:38: sparse: expression using sizeof(void) >> drivers/video/fbdev/imxfb.c:977:27: sparse: incorrect type in assignment (different address spaces) @@ expected char [noderef] <asn:2>*screen_base @@ got sn:2>*screen_base @@ drivers/video/fbdev/imxfb.c:977:27: expected char [noderef] <asn:2>*screen_base drivers/video/fbdev/imxfb.c:977:27: got void * >> drivers/video/fbdev/imxfb.c:1049:52: sparse: incorrect type in argument 3 (different address spaces) @@ expected void *cpu_addr @@ got char [noderef] <avoid *cpu_addr @@ drivers/video/fbdev/imxfb.c:1049:52: expected void *cpu_addr drivers/video/fbdev/imxfb.c:1049:52: got char [noderef] <asn:2>*screen_base drivers/video/fbdev/imxfb.c:1080:52: sparse: incorrect type in argument 3 (different address spaces) @@ expected void *cpu_addr @@ got char [noderef] <avoid *cpu_addr @@ drivers/video/fbdev/imxfb.c:1080:52: expected void *cpu_addr drivers/video/fbdev/imxfb.c:1080:52: got char [noderef] <asn:2>*screen_base include/linux/slab.h:666:13: sparse: call with no type! vim +380 drivers/video/fbdev/imxfb.c 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 344 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 345 /* 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 346 * imxfb_check_var(): 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 347 * Round up in the following order: bits_per_pixel, xres, 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 348 * yres, xres_virtual, yres_virtual, xoffset, yoffset, grayscale, 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 349 * bitfields, horizontal timing, vertical timing. 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 350 */ 66c8719b2 drivers/video/imxfb.c Sascha Hauer 2008-12-16 351 static int imxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 352 { 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 353 struct imxfb_info *fbi = info->par; 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 354 struct imxfb_rgb *rgb; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 355 const struct imx_fb_videomode *imxfb_mode; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 356 unsigned long lcd_clk; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 357 unsigned long long tmp; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 358 u32 pcr = 0; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 359 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 360 if (var->xres < MIN_XRES) 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 361 var->xres = MIN_XRES; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 362 if (var->yres < MIN_YRES) 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 363 var->yres = MIN_YRES; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 364 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 365 imxfb_mode = imxfb_find_mode(fbi); 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 366 if (!imxfb_mode) 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 367 return -EINVAL; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 368 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 369 var->xres = imxfb_mode->mode.xres; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 370 var->yres = imxfb_mode->mode.yres; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 371 var->bits_per_pixel = imxfb_mode->bpp; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 372 var->pixclock = imxfb_mode->mode.pixclock; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 373 var->hsync_len = imxfb_mode->mode.hsync_len; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 374 var->left_margin = imxfb_mode->mode.left_margin; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 375 var->right_margin = imxfb_mode->mode.right_margin; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 376 var->vsync_len = imxfb_mode->mode.vsync_len; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 377 var->upper_margin = imxfb_mode->mode.upper_margin; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 378 var->lower_margin = imxfb_mode->mode.lower_margin; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 379 var->sync = imxfb_mode->mode.sync; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 @380 var->xres_virtual = max(var->xres_virtual, var->xres); 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 381 var->yres_virtual = max(var->yres_virtual, var->yres); 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 382 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 383 pr_debug("var->bits_per_pixel=%d\n", var->bits_per_pixel); 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 384 13aaea03b drivers/video/imxfb.c Sascha Hauer 2012-03-07 385 lcd_clk = clk_get_rate(fbi->clk_per); 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 386 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 387 tmp = var->pixclock * (unsigned long long)lcd_clk; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 388 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 389 do_div(tmp, 1000000); 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 390 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 391 if (do_div(tmp, 1000000) > 500000) 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 392 tmp++; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 393 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 394 pcr = (unsigned int)tmp; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 395 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 396 if (--pcr > 0x3F) { 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 397 pcr = 0x3F; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 398 printk(KERN_WARNING "Must limit pixel clock to %luHz\n", 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 399 lcd_clk / pcr); 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 400 } 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 401 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 402 switch (var->bits_per_pixel) { 1512222b1 drivers/video/imxfb.c Sascha Hauer 2009-01-26 403 case 32: 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 404 pcr |= PCR_BPIX_18; 1512222b1 drivers/video/imxfb.c Sascha Hauer 2009-01-26 405 rgb = &def_rgb_18; 1512222b1 drivers/video/imxfb.c Sascha Hauer 2009-01-26 406 break; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 407 case 16: 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 408 default: e69dc9a91 drivers/video/imxfb.c Shawn Guo 2012-09-16 409 if (is_imx1_fb(fbi)) 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 410 pcr |= PCR_BPIX_12; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 411 else 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 412 pcr |= PCR_BPIX_16; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 413 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 414 if (imxfb_mode->pcr & PCR_TFT) 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 415 rgb = &def_rgb_16_tft; 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 416 else 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 417 rgb = &def_rgb_16_stn; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 418 break; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 419 case 8: 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 420 pcr |= PCR_BPIX_8; 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 421 rgb = &def_rgb_8; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 422 break; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 423 } 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 424 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 425 /* add sync polarities */ 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 426 pcr |= imxfb_mode->pcr & ~(0x3f | (7 << 25)); 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 427 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 428 fbi->pcr = pcr; b62ea4112 drivers/video/fbdev/imxfb.c Martin Kaiser 2017-04-21 429 /* b62ea4112 drivers/video/fbdev/imxfb.c Martin Kaiser 2017-04-21 430 * The LCDC AUS Mode Control Register does not exist on imx1. b62ea4112 drivers/video/fbdev/imxfb.c Martin Kaiser 2017-04-21 431 */ b62ea4112 drivers/video/fbdev/imxfb.c Martin Kaiser 2017-04-21 432 if (!is_imx1_fb(fbi) && imxfb_mode->aus_mode) b62ea4112 drivers/video/fbdev/imxfb.c Martin Kaiser 2017-04-21 433 fbi->lauscr = LAUSCR_AUS_MODE; 343684ffb drivers/video/imxfb.c Sascha Hauer 2009-03-19 434 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 435 /* 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 436 * Copy the RGB parameters for this display 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 437 * from the machine specific parameters. 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 438 */ 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 439 var->red = rgb->red; 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 440 var->green = rgb->green; 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 441 var->blue = rgb->blue; 80eee6bca drivers/video/imxfb.c Sascha Hauer 2008-12-16 442 var->transp = rgb->transp; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 443 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 444 pr_debug("RGBT length = %d:%d:%d:%d\n", 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 445 var->red.length, var->green.length, var->blue.length, 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 446 var->transp.length); 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 447 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 448 pr_debug("RGBT offset = %d:%d:%d:%d\n", 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 449 var->red.offset, var->green.offset, var->blue.offset, 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 450 var->transp.offset); 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 451 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 452 return 0; 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 453 } 7c2f891cb drivers/video/imxfb.c Sascha Hauer 2005-05-01 454 :::::: The code at line 380 was first introduced by commit :::::: 7c2f891cb64b0b9c8d389da97c221ee4288f1307 [PATCH] imxfb: Add Freescale i.MX framebuffer driver :::::: TO: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation