diff mbox series

[2/7] fbdev: Do not include <linux/backlight.h> in header

Message ID 20240212101712.23675-3-tzimmermann@suse.de (mailing list archive)
State Superseded
Headers show
Series fbdev: Clean up include dependencies in header | expand

Commit Message

Thomas Zimmermann Feb. 12, 2024, 10:13 a.m. UTC
Forward declare struct backlight_device and remove the include
statement.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
 include/linux/fb.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

kernel test robot Feb. 12, 2024, 7:25 p.m. UTC | #1
Hi Thomas,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-misc/drm-misc-next]
[also build test WARNING on linus/master v6.8-rc4 next-20240212]
[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/20240212-181930
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:    https://lore.kernel.org/r/20240212101712.23675-3-tzimmermann%40suse.de
patch subject: [PATCH 2/7] fbdev: Do not include <linux/backlight.h> in header
config: openrisc-allyesconfig (https://download.01.org/0day-ci/archive/20240213/202402130207.8ZFxCEYs-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240213/202402130207.8ZFxCEYs-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402130207.8ZFxCEYs-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/staging/fbtft/fb_ssd1351.c: In function 'update_onboard_backlight':
   drivers/staging/fbtft/fb_ssd1351.c:192:33: error: implicit declaration of function 'bl_get_data'; did you mean 'acpi_get_data'? [-Werror=implicit-function-declaration]
     192 |         struct fbtft_par *par = bl_get_data(bd);
         |                                 ^~~~~~~~~~~
         |                                 acpi_get_data
>> drivers/staging/fbtft/fb_ssd1351.c:192:33: warning: initialization of 'struct fbtft_par *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
   In file included from include/linux/device.h:15,
                    from include/linux/acpi.h:14,
                    from include/linux/spi/spi.h:9,
                    from drivers/staging/fbtft/fb_ssd1351.c:5:
   drivers/staging/fbtft/fb_ssd1351.c:197:35: error: invalid use of undefined type 'struct backlight_device'
     197 |                       __func__, bd->props.power, bd->props.fb_blank);
         |                                   ^~
   include/linux/dev_printk.h:110:37: note: in definition of macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                                     ^~~~~~~~~~~
   drivers/staging/fbtft/fbtft.h:433:17: note: in expansion of macro 'dev_info'
     433 |                 dev_info((par)->info->device, format, ##arg);  \
         |                 ^~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c:195:9: note: in expansion of macro 'fbtft_par_dbg'
     195 |         fbtft_par_dbg(DEBUG_BACKLIGHT, par,
         |         ^~~~~~~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c:197:52: error: invalid use of undefined type 'struct backlight_device'
     197 |                       __func__, bd->props.power, bd->props.fb_blank);
         |                                                    ^~
   include/linux/dev_printk.h:110:37: note: in definition of macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                                     ^~~~~~~~~~~
   drivers/staging/fbtft/fbtft.h:433:17: note: in expansion of macro 'dev_info'
     433 |                 dev_info((par)->info->device, format, ##arg);  \
         |                 ^~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c:195:9: note: in expansion of macro 'fbtft_par_dbg'
     195 |         fbtft_par_dbg(DEBUG_BACKLIGHT, par,
         |         ^~~~~~~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c:199:15: error: implicit declaration of function 'backlight_is_blank' [-Werror=implicit-function-declaration]
     199 |         on = !backlight_is_blank(bd);
         |               ^~~~~~~~~~~~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c: At top level:
   drivers/staging/fbtft/fb_ssd1351.c:206:21: error: variable 'bl_ops' has initializer but incomplete type
     206 | static const struct backlight_ops bl_ops = {
         |                     ^~~~~~~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c:207:10: error: 'const struct backlight_ops' has no member named 'update_status'
     207 |         .update_status = update_onboard_backlight,
         |          ^~~~~~~~~~~~~
>> drivers/staging/fbtft/fb_ssd1351.c:207:26: warning: excess elements in struct initializer
     207 |         .update_status = update_onboard_backlight,
         |                          ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c:207:26: note: (near initialization for 'bl_ops')
   drivers/staging/fbtft/fb_ssd1351.c: In function 'register_onboard_backlight':
   drivers/staging/fbtft/fb_ssd1351.c:213:16: error: variable 'bl_props' has initializer but incomplete type
     213 |         struct backlight_properties bl_props = { 0, };
         |                ^~~~~~~~~~~~~~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c:213:50: warning: excess elements in struct initializer
     213 |         struct backlight_properties bl_props = { 0, };
         |                                                  ^
   drivers/staging/fbtft/fb_ssd1351.c:213:50: note: (near initialization for 'bl_props')
   drivers/staging/fbtft/fb_ssd1351.c:213:37: error: storage size of 'bl_props' isn't known
     213 |         struct backlight_properties bl_props = { 0, };
         |                                     ^~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c:215:25: error: 'BACKLIGHT_RAW' undeclared (first use in this function); did you mean 'FB_BACKLIGHT_MAX'?
     215 |         bl_props.type = BACKLIGHT_RAW;
         |                         ^~~~~~~~~~~~~
         |                         FB_BACKLIGHT_MAX
   drivers/staging/fbtft/fb_ssd1351.c:215:25: note: each undeclared identifier is reported only once for each function it appears in
   drivers/staging/fbtft/fb_ssd1351.c:218:14: error: implicit declaration of function 'backlight_device_register'; did you mean 'root_device_register'? [-Werror=implicit-function-declaration]
     218 |         bd = backlight_device_register(dev_driver_string(par->info->device),
         |              ^~~~~~~~~~~~~~~~~~~~~~~~~
         |              root_device_register
>> drivers/staging/fbtft/fb_ssd1351.c:213:37: warning: unused variable 'bl_props' [-Wunused-variable]
     213 |         struct backlight_properties bl_props = { 0, };
         |                                     ^~~~~~~~
   drivers/staging/fbtft/fb_ssd1351.c: At top level:
   drivers/staging/fbtft/fb_ssd1351.c:206:35: error: storage size of 'bl_ops' isn't known
     206 | static const struct backlight_ops bl_ops = {
         |                                   ^~~~~~
   cc1: some warnings being treated as errors


vim +192 drivers/staging/fbtft/fb_ssd1351.c

883daf0a5c35c8 Thomas Petazzoni 2014-12-31  189  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  190  static int update_onboard_backlight(struct backlight_device *bd)
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  191  {
883daf0a5c35c8 Thomas Petazzoni 2014-12-31 @192  	struct fbtft_par *par = bl_get_data(bd);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  193  	bool on;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  194  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  195  	fbtft_par_dbg(DEBUG_BACKLIGHT, par,
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  196  		      "%s: power=%d, fb_blank=%d\n",
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  197  		      __func__, bd->props.power, bd->props.fb_blank);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  198  
66d653c37228cb Stephen Kitt     2022-06-07  199  	on = !backlight_is_blank(bd);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  200  	/* Onboard backlight connected to GPIO0 on SSD1351, GPIO1 unused */
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  201  	write_reg(par, 0xB5, on ? 0x03 : 0x02);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  202  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  203  	return 0;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  204  }
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  205  
23801e3438f6ce Mike Rapoport    2015-09-03 @206  static const struct backlight_ops bl_ops = {
23801e3438f6ce Mike Rapoport    2015-09-03 @207  	.update_status = update_onboard_backlight,
23801e3438f6ce Mike Rapoport    2015-09-03  208  };
23801e3438f6ce Mike Rapoport    2015-09-03  209  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  210  static void register_onboard_backlight(struct fbtft_par *par)
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  211  {
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  212  	struct backlight_device *bd;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31 @213  	struct backlight_properties bl_props = { 0, };
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  214  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31 @215  	bl_props.type = BACKLIGHT_RAW;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  216  	bl_props.power = FB_BLANK_POWERDOWN;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  217  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  218  	bd = backlight_device_register(dev_driver_string(par->info->device),
333c7b940526be Leonardo Brás    2018-08-07  219  				       par->info->device, par, &bl_ops,
333c7b940526be Leonardo Brás    2018-08-07  220  				       &bl_props);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  221  	if (IS_ERR(bd)) {
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  222  		dev_err(par->info->device,
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  223  			"cannot register backlight device (%ld)\n",
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  224  			PTR_ERR(bd));
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  225  		return;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  226  	}
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  227  	par->info->bl_dev = bd;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  228  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  229  	if (!par->fbtftops.unregister_backlight)
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  230  		par->fbtftops.unregister_backlight = fbtft_unregister_backlight;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  231  }
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  232
kernel test robot Feb. 12, 2024, 7:56 p.m. UTC | #2
Hi Thomas,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on linus/master v6.8-rc4 next-20240212]
[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/20240212-181930
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:    https://lore.kernel.org/r/20240212101712.23675-3-tzimmermann%40suse.de
patch subject: [PATCH 2/7] fbdev: Do not include <linux/backlight.h> in header
config: riscv-allmodconfig (https://download.01.org/0day-ci/archive/20240213/202402130346.2iGNwgDE-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project c08b90c50bcac9f3f563c79491c8dbcbe7c3b574)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240213/202402130346.2iGNwgDE-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402130346.2iGNwgDE-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/staging/fbtft/fb_ssd1351.c:192:26: error: call to undeclared function 'bl_get_data'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     192 |         struct fbtft_par *par = bl_get_data(bd);
         |                                 ^
>> drivers/staging/fbtft/fb_ssd1351.c:192:20: error: incompatible integer to pointer conversion initializing 'struct fbtft_par *' with an expression of type 'int' [-Wint-conversion]
     192 |         struct fbtft_par *par = bl_get_data(bd);
         |                           ^     ~~~~~~~~~~~~~~~
>> drivers/staging/fbtft/fb_ssd1351.c:197:21: error: incomplete definition of type 'struct backlight_device'
     197 |                       __func__, bd->props.power, bd->props.fb_blank);
         |                                 ~~^
   drivers/staging/fbtft/fbtft.h:433:43: note: expanded from macro 'fbtft_par_dbg'
     433 |                 dev_info((par)->info->device, format, ##arg);  \
         |                                                         ^~~
   include/linux/dev_printk.h:150:67: note: expanded from macro 'dev_info'
     150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                                          ^~~~~~~~~~~
   include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                                     ^~~~~~~~~~~
   include/linux/fb.h:20:8: note: forward declaration of 'struct backlight_device'
      20 | struct backlight_device;
         |        ^
   drivers/staging/fbtft/fb_ssd1351.c:197:38: error: incomplete definition of type 'struct backlight_device'
     197 |                       __func__, bd->props.power, bd->props.fb_blank);
         |                                                  ~~^
   drivers/staging/fbtft/fbtft.h:433:43: note: expanded from macro 'fbtft_par_dbg'
     433 |                 dev_info((par)->info->device, format, ##arg);  \
         |                                                         ^~~
   include/linux/dev_printk.h:150:67: note: expanded from macro 'dev_info'
     150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
         |                                                                          ^~~~~~~~~~~
   include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
     110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
         |                                     ^~~~~~~~~~~
   include/linux/fb.h:20:8: note: forward declaration of 'struct backlight_device'
      20 | struct backlight_device;
         |        ^
>> drivers/staging/fbtft/fb_ssd1351.c:199:8: error: call to undeclared function 'backlight_is_blank'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     199 |         on = !backlight_is_blank(bd);
         |               ^
>> drivers/staging/fbtft/fb_ssd1351.c:206:35: error: variable has incomplete type 'const struct backlight_ops'
     206 | static const struct backlight_ops bl_ops = {
         |                                   ^
   drivers/staging/fbtft/fb_ssd1351.c:206:21: note: forward declaration of 'struct backlight_ops'
     206 | static const struct backlight_ops bl_ops = {
         |                     ^
>> drivers/staging/fbtft/fb_ssd1351.c:213:30: error: variable has incomplete type 'struct backlight_properties'
     213 |         struct backlight_properties bl_props = { 0, };
         |                                     ^
   drivers/staging/fbtft/fb_ssd1351.c:213:9: note: forward declaration of 'struct backlight_properties'
     213 |         struct backlight_properties bl_props = { 0, };
         |                ^
>> drivers/staging/fbtft/fb_ssd1351.c:215:18: error: use of undeclared identifier 'BACKLIGHT_RAW'
     215 |         bl_props.type = BACKLIGHT_RAW;
         |                         ^
>> drivers/staging/fbtft/fb_ssd1351.c:218:7: error: call to undeclared function 'backlight_device_register'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     218 |         bd = backlight_device_register(dev_driver_string(par->info->device),
         |              ^
   drivers/staging/fbtft/fb_ssd1351.c:218:7: note: did you mean '__root_device_register'?
   include/linux/device.h:1143:16: note: '__root_device_register' declared here
    1143 | struct device *__root_device_register(const char *name, struct module *owner);
         |                ^
   9 errors generated.


vim +197 drivers/staging/fbtft/fb_ssd1351.c

883daf0a5c35c8 Thomas Petazzoni 2014-12-31  189  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  190  static int update_onboard_backlight(struct backlight_device *bd)
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  191  {
883daf0a5c35c8 Thomas Petazzoni 2014-12-31 @192  	struct fbtft_par *par = bl_get_data(bd);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  193  	bool on;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  194  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  195  	fbtft_par_dbg(DEBUG_BACKLIGHT, par,
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  196  		      "%s: power=%d, fb_blank=%d\n",
883daf0a5c35c8 Thomas Petazzoni 2014-12-31 @197  		      __func__, bd->props.power, bd->props.fb_blank);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  198  
66d653c37228cb Stephen Kitt     2022-06-07 @199  	on = !backlight_is_blank(bd);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  200  	/* Onboard backlight connected to GPIO0 on SSD1351, GPIO1 unused */
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  201  	write_reg(par, 0xB5, on ? 0x03 : 0x02);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  202  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  203  	return 0;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  204  }
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  205  
23801e3438f6ce Mike Rapoport    2015-09-03 @206  static const struct backlight_ops bl_ops = {
23801e3438f6ce Mike Rapoport    2015-09-03  207  	.update_status = update_onboard_backlight,
23801e3438f6ce Mike Rapoport    2015-09-03  208  };
23801e3438f6ce Mike Rapoport    2015-09-03  209  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  210  static void register_onboard_backlight(struct fbtft_par *par)
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  211  {
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  212  	struct backlight_device *bd;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31 @213  	struct backlight_properties bl_props = { 0, };
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  214  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31 @215  	bl_props.type = BACKLIGHT_RAW;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  216  	bl_props.power = FB_BLANK_POWERDOWN;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  217  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31 @218  	bd = backlight_device_register(dev_driver_string(par->info->device),
333c7b940526be Leonardo Brás    2018-08-07  219  				       par->info->device, par, &bl_ops,
333c7b940526be Leonardo Brás    2018-08-07  220  				       &bl_props);
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  221  	if (IS_ERR(bd)) {
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  222  		dev_err(par->info->device,
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  223  			"cannot register backlight device (%ld)\n",
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  224  			PTR_ERR(bd));
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  225  		return;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  226  	}
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  227  	par->info->bl_dev = bd;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  228  
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  229  	if (!par->fbtftops.unregister_backlight)
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  230  		par->fbtftops.unregister_backlight = fbtft_unregister_backlight;
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  231  }
883daf0a5c35c8 Thomas Petazzoni 2014-12-31  232
kernel test robot Feb. 13, 2024, 5:43 a.m. UTC | #3
Hi Thomas,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-misc/drm-misc-next]
[also build test WARNING on linus/master v6.8-rc4 next-20240212]
[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/20240212-181930
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:    https://lore.kernel.org/r/20240212101712.23675-3-tzimmermann%40suse.de
patch subject: [PATCH 2/7] fbdev: Do not include <linux/backlight.h> in header
config: powerpc-ppc6xx_defconfig (https://download.01.org/0day-ci/archive/20240213/202402131349.eg8DJ3MB-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240213/202402131349.eg8DJ3MB-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402131349.eg8DJ3MB-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/macintosh/via-pmu-backlight.c: In function '__pmu_backlight_update_status':
   drivers/macintosh/via-pmu-backlight.c:74:21: error: implicit declaration of function 'backlight_get_brightness'; did you mean 'pmu_backlight_get_level_brightness'? [-Werror=implicit-function-declaration]
      74 |         int level = backlight_get_brightness(bd);
         |                     ^~~~~~~~~~~~~~~~~~~~~~~~
         |                     pmu_backlight_get_level_brightness
   drivers/macintosh/via-pmu-backlight.c: At top level:
   drivers/macintosh/via-pmu-backlight.c:108:21: error: variable 'pmu_backlight_data' has initializer but incomplete type
     108 | static const struct backlight_ops pmu_backlight_data = {
         |                     ^~~~~~~~~~~~~
   drivers/macintosh/via-pmu-backlight.c:109:10: error: 'const struct backlight_ops' has no member named 'update_status'
     109 |         .update_status  = pmu_backlight_update_status,
         |          ^~~~~~~~~~~~~
>> drivers/macintosh/via-pmu-backlight.c:109:27: warning: excess elements in struct initializer
     109 |         .update_status  = pmu_backlight_update_status,
         |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/macintosh/via-pmu-backlight.c:109:27: note: (near initialization for 'pmu_backlight_data')
   drivers/macintosh/via-pmu-backlight.c: In function 'pmu_backlight_init':
   drivers/macintosh/via-pmu-backlight.c:136:37: error: storage size of 'props' isn't known
     136 |         struct backlight_properties props;
         |                                     ^~~~~
   drivers/macintosh/via-pmu-backlight.c:154:34: error: invalid application of 'sizeof' to incomplete type 'struct backlight_properties'
     154 |         memset(&props, 0, sizeof(struct backlight_properties));
         |                                  ^~~~~~
   drivers/macintosh/via-pmu-backlight.c:155:22: error: 'BACKLIGHT_PLATFORM' undeclared (first use in this function)
     155 |         props.type = BACKLIGHT_PLATFORM;
         |                      ^~~~~~~~~~~~~~~~~~
   drivers/macintosh/via-pmu-backlight.c:155:22: note: each undeclared identifier is reported only once for each function it appears in
   drivers/macintosh/via-pmu-backlight.c:157:14: error: implicit declaration of function 'backlight_device_register'; did you mean 'root_device_register'? [-Werror=implicit-function-declaration]
     157 |         bd = backlight_device_register(name, NULL, NULL, &pmu_backlight_data,
         |              ^~~~~~~~~~~~~~~~~~~~~~~~~
         |              root_device_register
   drivers/macintosh/via-pmu-backlight.c:166:19: error: invalid use of undefined type 'struct backlight_device'
     166 |         level = bd->props.max_brightness;
         |                   ^~
   drivers/macintosh/via-pmu-backlight.c:176:35: error: invalid use of undefined type 'struct backlight_device'
     176 |                                 bd->props.max_brightness / 15);
         |                                   ^~
   drivers/macintosh/via-pmu-backlight.c:179:11: error: invalid use of undefined type 'struct backlight_device'
     179 |         bd->props.brightness = level;
         |           ^~
   drivers/macintosh/via-pmu-backlight.c:180:11: error: invalid use of undefined type 'struct backlight_device'
     180 |         bd->props.power = FB_BLANK_UNBLANK;
         |           ^~
   drivers/macintosh/via-pmu-backlight.c:181:9: error: implicit declaration of function 'backlight_update_status'; did you mean 'pmu_backlight_update_status'? [-Werror=implicit-function-declaration]
     181 |         backlight_update_status(bd);
         |         ^~~~~~~~~~~~~~~~~~~~~~~
         |         pmu_backlight_update_status
>> drivers/macintosh/via-pmu-backlight.c:136:37: warning: unused variable 'props' [-Wunused-variable]
     136 |         struct backlight_properties props;
         |                                     ^~~~~
   drivers/macintosh/via-pmu-backlight.c: At top level:
   drivers/macintosh/via-pmu-backlight.c:108:35: error: storage size of 'pmu_backlight_data' isn't known
     108 | static const struct backlight_ops pmu_backlight_data = {
         |                                   ^~~~~~~~~~~~~~~~~~
   drivers/macintosh/via-pmu-backlight.c:108:35: error: storage size of 'pmu_backlight_data' isn't known
   cc1: some warnings being treated as errors


vim +109 drivers/macintosh/via-pmu-backlight.c

0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  106  
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  107  
acc2472ed33fc5 Lionel Debroux         2010-11-16  108  static const struct backlight_ops pmu_backlight_data = {
5474c120aafe78 Michael Hanselmann     2006-06-25 @109  	.update_status	= pmu_backlight_update_status,
599a52d1262939 Richard Purdie         2007-02-10  110  
5474c120aafe78 Michael Hanselmann     2006-06-25  111  };
5474c120aafe78 Michael Hanselmann     2006-06-25  112  
4b755999d6e0c1 Michael Hanselmann     2006-07-30  113  #ifdef CONFIG_PM
d565dd3b0824b6 Benjamin Herrenschmidt 2006-08-31  114  void pmu_backlight_set_sleep(int sleep)
4b755999d6e0c1 Michael Hanselmann     2006-07-30  115  {
4b755999d6e0c1 Michael Hanselmann     2006-07-30  116  	unsigned long flags;
4b755999d6e0c1 Michael Hanselmann     2006-07-30  117  
4b755999d6e0c1 Michael Hanselmann     2006-07-30  118  	spin_lock_irqsave(&pmu_backlight_lock, flags);
d565dd3b0824b6 Benjamin Herrenschmidt 2006-08-31  119  	sleeping = sleep;
fa19d63488bd10 Benjamin Herrenschmidt 2008-03-03  120  	if (pmac_backlight && uses_pmu_bl) {
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  121  		if (sleep) {
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  122  			struct adb_request req;
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  123  
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  124  			pmu_request(&req, NULL, 2, PMU_POWER_CTRL,
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  125  				    PMU_POW_BACKLIGHT | PMU_POW_OFF);
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  126  			pmu_wait_complete(&req);
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  127  		} else
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  128  			__pmu_backlight_update_status(pmac_backlight);
0094f2cdcfb6f2 Benjamin Herrenschmidt 2007-12-20  129  	}
4b755999d6e0c1 Michael Hanselmann     2006-07-30  130  	spin_unlock_irqrestore(&pmu_backlight_lock, flags);
4b755999d6e0c1 Michael Hanselmann     2006-07-30  131  }
d565dd3b0824b6 Benjamin Herrenschmidt 2006-08-31  132  #endif /* CONFIG_PM */
4b755999d6e0c1 Michael Hanselmann     2006-07-30  133  
00f7b29f6e9b8a Mathieu Malaterre      2017-12-26  134  void __init pmu_backlight_init(void)
5474c120aafe78 Michael Hanselmann     2006-06-25  135  {
a19a6ee6cad2b2 Matthew Garrett        2010-02-17 @136  	struct backlight_properties props;
diff mbox series

Patch

diff --git a/include/linux/fb.h b/include/linux/fb.h
index 2ce2f5c2fca9a..7380d959c5d53 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -13,11 +13,11 @@ 
 #include <linux/workqueue.h>
 #include <linux/notifier.h>
 #include <linux/list.h>
-#include <linux/backlight.h>
 #include <linux/slab.h>
 
 #include <asm/fb.h>
 
+struct backlight_device;
 struct vm_area_struct;
 struct fb_info;
 struct device;