[PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header
kernel test robot
lkp at intel.com
Sun Feb 18 05:46:26 UTC 2024
Hi Thomas,
kernel test robot noticed the following build warnings:
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on staging/staging-next staging/staging-linus drm-misc/drm-misc-next linus/master v6.8-rc4 next-20240216]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Thomas-Zimmermann/drm-nouveau-Include-linux-backlight-h/20240213-164639
base: staging/staging-testing
patch link: https://lore.kernel.org/r/20240213084403.20995-4-tzimmermann%40suse.de
patch subject: [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header
config: arm-spitz_defconfig (https://download.01.org/0day-ci/archive/20240218/202402181344.8XWxJ6fV-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240218/202402181344.8XWxJ6fV-lkp@intel.com/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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402181344.8XWxJ6fV-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/video/backlight/corgi_lcd.c: In function 'corgi_bl_get_intensity':
drivers/video/backlight/corgi_lcd.c:390:33: error: implicit declaration of function 'bl_get_data'; did you mean 'lcd_get_data'? [-Werror=implicit-function-declaration]
390 | struct corgi_lcd *lcd = bl_get_data(bd);
| ^~~~~~~~~~~
| lcd_get_data
>> drivers/video/backlight/corgi_lcd.c:390:33: warning: initialization of 'struct corgi_lcd *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
drivers/video/backlight/corgi_lcd.c: In function 'corgi_bl_update_status':
drivers/video/backlight/corgi_lcd.c:422:33: warning: initialization of 'struct corgi_lcd *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
422 | struct corgi_lcd *lcd = bl_get_data(bd);
| ^~~~~~~~~~~
drivers/video/backlight/corgi_lcd.c:423:25: error: implicit declaration of function 'backlight_get_brightness' [-Werror=implicit-function-declaration]
423 | int intensity = backlight_get_brightness(bd);
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/video/backlight/corgi_lcd.c: In function 'corgi_lcd_limit_intensity':
drivers/video/backlight/corgi_lcd.c:441:9: error: implicit declaration of function 'backlight_update_status' [-Werror=implicit-function-declaration]
441 | backlight_update_status(the_corgi_lcd->bl_dev);
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/video/backlight/corgi_lcd.c: At top level:
drivers/video/backlight/corgi_lcd.c:445:21: error: variable 'corgi_bl_ops' has initializer but incomplete type
445 | static const struct backlight_ops corgi_bl_ops = {
| ^~~~~~~~~~~~~
drivers/video/backlight/corgi_lcd.c:446:10: error: 'const struct backlight_ops' has no member named 'get_brightness'
446 | .get_brightness = corgi_bl_get_intensity,
| ^~~~~~~~~~~~~~
>> drivers/video/backlight/corgi_lcd.c:446:27: warning: excess elements in struct initializer
446 | .get_brightness = corgi_bl_get_intensity,
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/video/backlight/corgi_lcd.c:446:27: note: (near initialization for 'corgi_bl_ops')
drivers/video/backlight/corgi_lcd.c:447:10: error: 'const struct backlight_ops' has no member named 'update_status'
447 | .update_status = corgi_bl_update_status,
| ^~~~~~~~~~~~~
drivers/video/backlight/corgi_lcd.c:447:27: warning: excess elements in struct initializer
447 | .update_status = corgi_bl_update_status,
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/video/backlight/corgi_lcd.c:447:27: note: (near initialization for 'corgi_bl_ops')
drivers/video/backlight/corgi_lcd.c: In function 'corgi_lcd_probe':
drivers/video/backlight/corgi_lcd.c:494:37: error: storage size of 'props' isn't known
494 | struct backlight_properties props;
| ^~~~~
drivers/video/backlight/corgi_lcd.c:518:34: error: invalid application of 'sizeof' to incomplete type 'struct backlight_properties'
518 | memset(&props, 0, sizeof(struct backlight_properties));
| ^~~~~~
drivers/video/backlight/corgi_lcd.c:519:22: error: 'BACKLIGHT_RAW' undeclared (first use in this function); did you mean 'FB_BACKLIGHT_MAX'?
519 | props.type = BACKLIGHT_RAW;
| ^~~~~~~~~~~~~
| FB_BACKLIGHT_MAX
drivers/video/backlight/corgi_lcd.c:519:22: note: each undeclared identifier is reported only once for each function it appears in
drivers/video/backlight/corgi_lcd.c:521:23: error: implicit declaration of function 'devm_backlight_device_register'; did you mean 'devm_lcd_device_register'? [-Werror=implicit-function-declaration]
521 | lcd->bl_dev = devm_backlight_device_register(&spi->dev, "corgi_bl",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| devm_lcd_device_register
drivers/video/backlight/corgi_lcd.c:527:20: error: invalid use of undefined type 'struct backlight_device'
527 | lcd->bl_dev->props.brightness = pdata->default_intensity;
| ^~
drivers/video/backlight/corgi_lcd.c:528:20: error: invalid use of undefined type 'struct backlight_device'
528 | lcd->bl_dev->props.power = FB_BLANK_UNBLANK;
| ^~
>> drivers/video/backlight/corgi_lcd.c:494:37: warning: unused variable 'props' [-Wunused-variable]
494 | struct backlight_properties props;
| ^~~~~
drivers/video/backlight/corgi_lcd.c: In function 'corgi_lcd_remove':
drivers/video/backlight/corgi_lcd.c:549:20: error: invalid use of undefined type 'struct backlight_device'
549 | lcd->bl_dev->props.power = FB_BLANK_UNBLANK;
| ^~
drivers/video/backlight/corgi_lcd.c:550:20: error: invalid use of undefined type 'struct backlight_device'
550 | lcd->bl_dev->props.brightness = 0;
| ^~
drivers/video/backlight/corgi_lcd.c: At top level:
drivers/video/backlight/corgi_lcd.c:445:35: error: storage size of 'corgi_bl_ops' isn't known
445 | static const struct backlight_ops corgi_bl_ops = {
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +390 drivers/video/backlight/corgi_lcd.c
b18250a8f66050 Eric Miao 2008-08-29 387
b18250a8f66050 Eric Miao 2008-08-29 388 static int corgi_bl_get_intensity(struct backlight_device *bd)
b18250a8f66050 Eric Miao 2008-08-29 389 {
4d89c3b38927be Jingoo Han 2013-02-21 @390 struct corgi_lcd *lcd = bl_get_data(bd);
b18250a8f66050 Eric Miao 2008-08-29 391
b18250a8f66050 Eric Miao 2008-08-29 392 return lcd->intensity;
b18250a8f66050 Eric Miao 2008-08-29 393 }
b18250a8f66050 Eric Miao 2008-08-29 394
b18250a8f66050 Eric Miao 2008-08-29 395 static int corgi_bl_set_intensity(struct corgi_lcd *lcd, int intensity)
b18250a8f66050 Eric Miao 2008-08-29 396 {
ff7a4c7130c0ad Eric Miao 2008-09-07 397 int cont;
ff7a4c7130c0ad Eric Miao 2008-09-07 398
b18250a8f66050 Eric Miao 2008-08-29 399 if (intensity > 0x10)
b18250a8f66050 Eric Miao 2008-08-29 400 intensity += 0x10;
b18250a8f66050 Eric Miao 2008-08-29 401
b18250a8f66050 Eric Miao 2008-08-29 402 corgi_ssp_lcdtg_send(lcd, DUTYCTRL_ADRS, intensity);
b18250a8f66050 Eric Miao 2008-08-29 403
ff7a4c7130c0ad Eric Miao 2008-09-07 404 /* Bit 5 via GPIO_BACKLIGHT_CONT */
ee0c8e494cc3c1 Linus Walleij 2020-02-20 405 cont = !!(intensity & 0x20);
ff7a4c7130c0ad Eric Miao 2008-09-07 406
ee0c8e494cc3c1 Linus Walleij 2020-02-20 407 if (lcd->backlight_cont)
ee0c8e494cc3c1 Linus Walleij 2020-02-20 408 gpiod_set_value_cansleep(lcd->backlight_cont, cont);
ff7a4c7130c0ad Eric Miao 2008-09-07 409
ee0c8e494cc3c1 Linus Walleij 2020-02-20 410 if (lcd->backlight_on)
ee0c8e494cc3c1 Linus Walleij 2020-02-20 411 gpiod_set_value_cansleep(lcd->backlight_on, intensity);
b18250a8f66050 Eric Miao 2008-08-29 412
b18250a8f66050 Eric Miao 2008-08-29 413 if (lcd->kick_battery)
b18250a8f66050 Eric Miao 2008-08-29 414 lcd->kick_battery();
b18250a8f66050 Eric Miao 2008-08-29 415
ff7a4c7130c0ad Eric Miao 2008-09-07 416 lcd->intensity = intensity;
b18250a8f66050 Eric Miao 2008-08-29 417 return 0;
b18250a8f66050 Eric Miao 2008-08-29 418 }
b18250a8f66050 Eric Miao 2008-08-29 419
b18250a8f66050 Eric Miao 2008-08-29 420 static int corgi_bl_update_status(struct backlight_device *bd)
b18250a8f66050 Eric Miao 2008-08-29 421 {
4d89c3b38927be Jingoo Han 2013-02-21 422 struct corgi_lcd *lcd = bl_get_data(bd);
51d53e5b06b8e7 Sam Ravnborg 2020-07-19 423 int intensity = backlight_get_brightness(bd);
b18250a8f66050 Eric Miao 2008-08-29 424
bfdcaa3b6899bb Eric Miao 2008-08-29 425 if (corgibl_flags & CORGIBL_SUSPENDED)
bfdcaa3b6899bb Eric Miao 2008-08-29 426 intensity = 0;
716bdf18746471 Pavel Machek 2009-11-06 427
716bdf18746471 Pavel Machek 2009-11-06 428 if ((corgibl_flags & CORGIBL_BATTLOW) && intensity > lcd->limit_mask)
716bdf18746471 Pavel Machek 2009-11-06 429 intensity = lcd->limit_mask;
bfdcaa3b6899bb Eric Miao 2008-08-29 430
b18250a8f66050 Eric Miao 2008-08-29 431 return corgi_bl_set_intensity(lcd, intensity);
b18250a8f66050 Eric Miao 2008-08-29 432 }
b18250a8f66050 Eric Miao 2008-08-29 433
5cbff9603a77d0 Dmitry Baryshkov 2008-10-28 434 void corgi_lcd_limit_intensity(int limit)
bfdcaa3b6899bb Eric Miao 2008-08-29 435 {
bfdcaa3b6899bb Eric Miao 2008-08-29 436 if (limit)
bfdcaa3b6899bb Eric Miao 2008-08-29 437 corgibl_flags |= CORGIBL_BATTLOW;
bfdcaa3b6899bb Eric Miao 2008-08-29 438 else
bfdcaa3b6899bb Eric Miao 2008-08-29 439 corgibl_flags &= ~CORGIBL_BATTLOW;
bfdcaa3b6899bb Eric Miao 2008-08-29 440
bfdcaa3b6899bb Eric Miao 2008-08-29 441 backlight_update_status(the_corgi_lcd->bl_dev);
bfdcaa3b6899bb Eric Miao 2008-08-29 442 }
5cbff9603a77d0 Dmitry Baryshkov 2008-10-28 443 EXPORT_SYMBOL(corgi_lcd_limit_intensity);
bfdcaa3b6899bb Eric Miao 2008-08-29 444
9905a43b2d563e Emese Revfy 2009-12-14 445 static const struct backlight_ops corgi_bl_ops = {
b18250a8f66050 Eric Miao 2008-08-29 @446 .get_brightness = corgi_bl_get_intensity,
b18250a8f66050 Eric Miao 2008-08-29 447 .update_status = corgi_bl_update_status,
b18250a8f66050 Eric Miao 2008-08-29 448 };
b18250a8f66050 Eric Miao 2008-08-29 449
bb0747105728fb Jingoo Han 2013-04-29 450 #ifdef CONFIG_PM_SLEEP
bb0747105728fb Jingoo Han 2013-04-29 451 static int corgi_lcd_suspend(struct device *dev)
b18250a8f66050 Eric Miao 2008-08-29 452 {
bb0747105728fb Jingoo Han 2013-04-29 453 struct corgi_lcd *lcd = dev_get_drvdata(dev);
b18250a8f66050 Eric Miao 2008-08-29 454
bfdcaa3b6899bb Eric Miao 2008-08-29 455 corgibl_flags |= CORGIBL_SUSPENDED;
b18250a8f66050 Eric Miao 2008-08-29 456 corgi_bl_set_intensity(lcd, 0);
b18250a8f66050 Eric Miao 2008-08-29 457 corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
b18250a8f66050 Eric Miao 2008-08-29 458 return 0;
b18250a8f66050 Eric Miao 2008-08-29 459 }
b18250a8f66050 Eric Miao 2008-08-29 460
bb0747105728fb Jingoo Han 2013-04-29 461 static int corgi_lcd_resume(struct device *dev)
b18250a8f66050 Eric Miao 2008-08-29 462 {
bb0747105728fb Jingoo Han 2013-04-29 463 struct corgi_lcd *lcd = dev_get_drvdata(dev);
b18250a8f66050 Eric Miao 2008-08-29 464
bfdcaa3b6899bb Eric Miao 2008-08-29 465 corgibl_flags &= ~CORGIBL_SUSPENDED;
b18250a8f66050 Eric Miao 2008-08-29 466 corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_UNBLANK);
b18250a8f66050 Eric Miao 2008-08-29 467 backlight_update_status(lcd->bl_dev);
b18250a8f66050 Eric Miao 2008-08-29 468 return 0;
b18250a8f66050 Eric Miao 2008-08-29 469 }
b18250a8f66050 Eric Miao 2008-08-29 470 #endif
b18250a8f66050 Eric Miao 2008-08-29 471
bb0747105728fb Jingoo Han 2013-04-29 472 static SIMPLE_DEV_PM_OPS(corgi_lcd_pm_ops, corgi_lcd_suspend, corgi_lcd_resume);
bb0747105728fb Jingoo Han 2013-04-29 473
ff7a4c7130c0ad Eric Miao 2008-09-07 474 static int setup_gpio_backlight(struct corgi_lcd *lcd,
ff7a4c7130c0ad Eric Miao 2008-09-07 475 struct corgi_lcd_platform_data *pdata)
ff7a4c7130c0ad Eric Miao 2008-09-07 476 {
ff7a4c7130c0ad Eric Miao 2008-09-07 477 struct spi_device *spi = lcd->spi_dev;
ff7a4c7130c0ad Eric Miao 2008-09-07 478
ee0c8e494cc3c1 Linus Walleij 2020-02-20 479 lcd->backlight_on = devm_gpiod_get_optional(&spi->dev,
ee0c8e494cc3c1 Linus Walleij 2020-02-20 480 "BL_ON", GPIOD_OUT_LOW);
ee0c8e494cc3c1 Linus Walleij 2020-02-20 481 if (IS_ERR(lcd->backlight_on))
ee0c8e494cc3c1 Linus Walleij 2020-02-20 482 return PTR_ERR(lcd->backlight_on);
ff7a4c7130c0ad Eric Miao 2008-09-07 483
ee0c8e494cc3c1 Linus Walleij 2020-02-20 484 lcd->backlight_cont = devm_gpiod_get_optional(&spi->dev, "BL_CONT",
ee0c8e494cc3c1 Linus Walleij 2020-02-20 485 GPIOD_OUT_LOW);
ee0c8e494cc3c1 Linus Walleij 2020-02-20 486 if (IS_ERR(lcd->backlight_cont))
ee0c8e494cc3c1 Linus Walleij 2020-02-20 487 return PTR_ERR(lcd->backlight_cont);
ff7a4c7130c0ad Eric Miao 2008-09-07 488
ff7a4c7130c0ad Eric Miao 2008-09-07 489 return 0;
ff7a4c7130c0ad Eric Miao 2008-09-07 490 }
ff7a4c7130c0ad Eric Miao 2008-09-07 491
1b9e450de105c1 Bill Pemberton 2012-11-19 492 static int corgi_lcd_probe(struct spi_device *spi)
b18250a8f66050 Eric Miao 2008-08-29 493 {
a19a6ee6cad2b2 Matthew Garrett 2010-02-17 @494 struct backlight_properties props;
c512794cada491 Jingoo Han 2013-11-12 495 struct corgi_lcd_platform_data *pdata = dev_get_platdata(&spi->dev);
b18250a8f66050 Eric Miao 2008-08-29 496 struct corgi_lcd *lcd;
b18250a8f66050 Eric Miao 2008-08-29 497 int ret = 0;
b18250a8f66050 Eric Miao 2008-08-29 498
b18250a8f66050 Eric Miao 2008-08-29 499 if (pdata == NULL) {
b18250a8f66050 Eric Miao 2008-08-29 500 dev_err(&spi->dev, "platform data not available\n");
b18250a8f66050 Eric Miao 2008-08-29 501 return -EINVAL;
b18250a8f66050 Eric Miao 2008-08-29 502 }
b18250a8f66050 Eric Miao 2008-08-29 503
06c96f189bf944 Jingoo Han 2012-05-29 504 lcd = devm_kzalloc(&spi->dev, sizeof(struct corgi_lcd), GFP_KERNEL);
3b20b894d4b342 Jingoo Han 2014-04-03 505 if (!lcd)
b18250a8f66050 Eric Miao 2008-08-29 506 return -ENOMEM;
b18250a8f66050 Eric Miao 2008-08-29 507
b18250a8f66050 Eric Miao 2008-08-29 508 lcd->spi_dev = spi;
b18250a8f66050 Eric Miao 2008-08-29 509
10645a1d1878cf Jingoo Han 2013-11-12 510 lcd->lcd_dev = devm_lcd_device_register(&spi->dev, "corgi_lcd",
10645a1d1878cf Jingoo Han 2013-11-12 511 &spi->dev, lcd, &corgi_lcd_ops);
06c96f189bf944 Jingoo Han 2012-05-29 512 if (IS_ERR(lcd->lcd_dev))
06c96f189bf944 Jingoo Han 2012-05-29 513 return PTR_ERR(lcd->lcd_dev);
06c96f189bf944 Jingoo Han 2012-05-29 514
b18250a8f66050 Eric Miao 2008-08-29 515 lcd->power = FB_BLANK_POWERDOWN;
b18250a8f66050 Eric Miao 2008-08-29 516 lcd->mode = (pdata) ? pdata->init_mode : CORGI_LCD_MODE_VGA;
b18250a8f66050 Eric Miao 2008-08-29 517
a19a6ee6cad2b2 Matthew Garrett 2010-02-17 518 memset(&props, 0, sizeof(struct backlight_properties));
bb7ca747f8d624 Matthew Garrett 2011-03-22 519 props.type = BACKLIGHT_RAW;
a19a6ee6cad2b2 Matthew Garrett 2010-02-17 520 props.max_brightness = pdata->max_intensity;
10645a1d1878cf Jingoo Han 2013-11-12 521 lcd->bl_dev = devm_backlight_device_register(&spi->dev, "corgi_bl",
10645a1d1878cf Jingoo Han 2013-11-12 522 &spi->dev, lcd, &corgi_bl_ops,
10645a1d1878cf Jingoo Han 2013-11-12 523 &props);
10645a1d1878cf Jingoo Han 2013-11-12 524 if (IS_ERR(lcd->bl_dev))
10645a1d1878cf Jingoo Han 2013-11-12 525 return PTR_ERR(lcd->bl_dev);
10645a1d1878cf Jingoo Han 2013-11-12 526
b18250a8f66050 Eric Miao 2008-08-29 527 lcd->bl_dev->props.brightness = pdata->default_intensity;
b18250a8f66050 Eric Miao 2008-08-29 528 lcd->bl_dev->props.power = FB_BLANK_UNBLANK;
b18250a8f66050 Eric Miao 2008-08-29 529
ff7a4c7130c0ad Eric Miao 2008-09-07 530 ret = setup_gpio_backlight(lcd, pdata);
ff7a4c7130c0ad Eric Miao 2008-09-07 531 if (ret)
10645a1d1878cf Jingoo Han 2013-11-12 532 return ret;
ff7a4c7130c0ad Eric Miao 2008-09-07 533
b18250a8f66050 Eric Miao 2008-08-29 534 lcd->kick_battery = pdata->kick_battery;
b18250a8f66050 Eric Miao 2008-08-29 535
9319dfa1e08700 Jingoo Han 2013-02-21 536 spi_set_drvdata(spi, lcd);
b18250a8f66050 Eric Miao 2008-08-29 537 corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_UNBLANK);
b18250a8f66050 Eric Miao 2008-08-29 538 backlight_update_status(lcd->bl_dev);
bfdcaa3b6899bb Eric Miao 2008-08-29 539
bfdcaa3b6899bb Eric Miao 2008-08-29 540 lcd->limit_mask = pdata->limit_mask;
bfdcaa3b6899bb Eric Miao 2008-08-29 541 the_corgi_lcd = lcd;
b18250a8f66050 Eric Miao 2008-08-29 542 return 0;
b18250a8f66050 Eric Miao 2008-08-29 543 }
b18250a8f66050 Eric Miao 2008-08-29 544
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the dri-devel
mailing list