* [PATCH v2 0/8] fbdev: Clean up include dependencies in header
@ 2024-02-13 8:42 Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 1/8] drm/nouveau: Include <linux/backlight.h> Thomas Zimmermann
` (8 more replies)
0 siblings, 9 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann
Remove unnecessary dependencies in the include statements of the
header file <linux/fb.h>. Several files throughout the kernel include
the fbdev header, so reducing dependencies positively affects other
subsystems as well. Also fix up nouveau and fbtft, which need backlight.h
in some their source files.
v2:
* include backlight.h in fbtft (kernel test robot)
Thomas Zimmermann (8):
drm/nouveau: Include <linux/backlight.h>
staging/fbtft: Include <linux/backlight.h>
fbdev: Do not include <linux/backlight.h> in header
fbdev: Do not include <linux/fs.h> in header
fbdev: Do not include <linux/notifier.h> in header
fbdev: Do not include <linux/slab.h> in header
fbdev: Clean up forward declarations in header file
fbdev: Clean up include statements in header file
drivers/gpu/drm/nouveau/dispnv50/disp.c | 1 +
drivers/staging/fbtft/fb_ssd1351.c | 2 ++
include/linux/fb.h | 24 +++++++++++++-----------
3 files changed, 16 insertions(+), 11 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 1/8] drm/nouveau: Include <linux/backlight.h>
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
@ 2024-02-13 8:42 ` Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 2/8] staging/fbtft: " Thomas Zimmermann
` (7 subsequent siblings)
8 siblings, 0 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann,
Jani Nikula
Resolved the proxy include via <linux/fb.h>, which does not require the
backlight header.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
drivers/gpu/drm/nouveau/dispnv50/disp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 8d37a694b7724..0c3d88ad0b0ea 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -28,6 +28,7 @@
#include "wndw.h"
#include "handles.h"
+#include <linux/backlight.h>
#include <linux/dma-mapping.h>
#include <linux/hdmi.h>
#include <linux/component.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 2/8] staging/fbtft: Include <linux/backlight.h>
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 1/8] drm/nouveau: Include <linux/backlight.h> Thomas Zimmermann
@ 2024-02-13 8:42 ` Thomas Zimmermann
2024-02-14 16:29 ` Thomas Zimmermann
2024-02-17 16:24 ` Greg KH
2024-02-13 8:42 ` [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header Thomas Zimmermann
` (6 subsequent siblings)
8 siblings, 2 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann
Resolved the proxy include via <linux/fb.h>, which does not require the
backlight header.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/staging/fbtft/fb_ssd1351.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c
index b8d55aa8c5c75..72172e870007e 100644
--- a/drivers/staging/fbtft/fb_ssd1351.c
+++ b/drivers/staging/fbtft/fb_ssd1351.c
@@ -1,4 +1,6 @@
// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/backlight.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 1/8] drm/nouveau: Include <linux/backlight.h> Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 2/8] staging/fbtft: " Thomas Zimmermann
@ 2024-02-13 8:42 ` Thomas Zimmermann
2024-02-18 5:46 ` kernel test robot
2024-02-18 18:22 ` kernel test robot
2024-02-13 8:42 ` [PATCH v2 4/8] fbdev: Do not include <linux/fs.h> " Thomas Zimmermann
` (5 subsequent siblings)
8 siblings, 2 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann,
Jani Nikula
Forward declare struct backlight_device and remove the include
statement.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
include/linux/fb.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 4/8] fbdev: Do not include <linux/fs.h> in header
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
` (2 preceding siblings ...)
2024-02-13 8:42 ` [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header Thomas Zimmermann
@ 2024-02-13 8:42 ` Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 5/8] fbdev: Do not include <linux/notifier.h> " Thomas Zimmermann
` (4 subsequent siblings)
8 siblings, 0 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann,
Jani Nikula
Forward declare struct inode and remove the include statement.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
include/linux/fb.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 7380d959c5d53..f269ba5202809 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -8,7 +8,6 @@
#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor_user)
-#include <linux/fs.h>
#include <linux/init.h>
#include <linux/workqueue.h>
#include <linux/notifier.h>
@@ -22,6 +21,7 @@ struct vm_area_struct;
struct fb_info;
struct device;
struct file;
+struct inode;
struct videomode;
struct device_node;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 5/8] fbdev: Do not include <linux/notifier.h> in header
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
` (3 preceding siblings ...)
2024-02-13 8:42 ` [PATCH v2 4/8] fbdev: Do not include <linux/fs.h> " Thomas Zimmermann
@ 2024-02-13 8:42 ` Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 6/8] fbdev: Do not include <linux/slab.h> " Thomas Zimmermann
` (3 subsequent siblings)
8 siblings, 0 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann,
Jani Nikula
Forward declare struct notifier_block and remove the include
statement.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
include/linux/fb.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/fb.h b/include/linux/fb.h
index f269ba5202809..90f348f14a490 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -10,7 +10,6 @@
#include <linux/init.h>
#include <linux/workqueue.h>
-#include <linux/notifier.h>
#include <linux/list.h>
#include <linux/slab.h>
@@ -22,6 +21,7 @@ struct fb_info;
struct device;
struct file;
struct inode;
+struct notifier_block;
struct videomode;
struct device_node;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 6/8] fbdev: Do not include <linux/slab.h> in header
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
` (4 preceding siblings ...)
2024-02-13 8:42 ` [PATCH v2 5/8] fbdev: Do not include <linux/notifier.h> " Thomas Zimmermann
@ 2024-02-13 8:42 ` Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 7/8] fbdev: Clean up forward declarations in header file Thomas Zimmermann
` (2 subsequent siblings)
8 siblings, 0 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann,
Jani Nikula
Forward declare struct page and remove the include statement.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
include/linux/fb.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 90f348f14a490..42155898374b1 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -11,7 +11,6 @@
#include <linux/init.h>
#include <linux/workqueue.h>
#include <linux/list.h>
-#include <linux/slab.h>
#include <asm/fb.h>
@@ -22,6 +21,7 @@ struct device;
struct file;
struct inode;
struct notifier_block;
+struct page;
struct videomode;
struct device_node;
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 7/8] fbdev: Clean up forward declarations in header file
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
` (5 preceding siblings ...)
2024-02-13 8:42 ` [PATCH v2 6/8] fbdev: Do not include <linux/slab.h> " Thomas Zimmermann
@ 2024-02-13 8:42 ` Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 8/8] fbdev: Clean up include statements " Thomas Zimmermann
2024-02-19 9:31 ` [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
8 siblings, 0 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann,
Jani Nikula
Add forward declarations for struct i2c_adapter and struct module, and
sort the list alphabetically.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
include/linux/fb.h | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 42155898374b1..8f70ca727a30d 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -15,15 +15,17 @@
#include <asm/fb.h>
struct backlight_device;
-struct vm_area_struct;
-struct fb_info;
struct device;
+struct device_node;
+struct fb_info;
struct file;
+struct i2c_adapter;
struct inode;
+struct module;
struct notifier_block;
struct page;
struct videomode;
-struct device_node;
+struct vm_area_struct;
/* Definitions below are used in the parsed monitor specs */
#define FB_DPMS_ACTIVE_OFF 1
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v2 8/8] fbdev: Clean up include statements in header file
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
` (6 preceding siblings ...)
2024-02-13 8:42 ` [PATCH v2 7/8] fbdev: Clean up forward declarations in header file Thomas Zimmermann
@ 2024-02-13 8:42 ` Thomas Zimmermann
2024-02-19 9:31 ` [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
8 siblings, 0 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-13 8:42 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging, Thomas Zimmermann,
Jani Nikula
Include mutex.h, printk.h and types.h, remove several unnecessary
include statements, and sort the list alphabetically.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
---
include/linux/fb.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/linux/fb.h b/include/linux/fb.h
index 8f70ca727a30d..708e6a177b1be 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -2,15 +2,15 @@
#ifndef _LINUX_FB_H
#define _LINUX_FB_H
-#include <linux/refcount.h>
-#include <linux/kgdb.h>
#include <uapi/linux/fb.h>
#define FBIO_CURSOR _IOWR('F', 0x08, struct fb_cursor_user)
-#include <linux/init.h>
+#include <linux/mutex.h>
+#include <linux/printk.h>
+#include <linux/refcount.h>
+#include <linux/types.h>
#include <linux/workqueue.h>
-#include <linux/list.h>
#include <asm/fb.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/8] staging/fbtft: Include <linux/backlight.h>
2024-02-13 8:42 ` [PATCH v2 2/8] staging/fbtft: " Thomas Zimmermann
@ 2024-02-14 16:29 ` Thomas Zimmermann
2024-02-17 16:24 ` Greg KH
1 sibling, 0 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-14 16:29 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging
Am 13.02.24 um 09:42 schrieb Thomas Zimmermann:
> Resolved the proxy include via <linux/fb.h>, which does not require the
> backlight header.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked by Jani via IRC
Acked-by: Jani Nikula<jani.nikula@intel.com>
> ---
> drivers/staging/fbtft/fb_ssd1351.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/staging/fbtft/fb_ssd1351.c b/drivers/staging/fbtft/fb_ssd1351.c
> index b8d55aa8c5c75..72172e870007e 100644
> --- a/drivers/staging/fbtft/fb_ssd1351.c
> +++ b/drivers/staging/fbtft/fb_ssd1351.c
> @@ -1,4 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0
> +
> +#include <linux/backlight.h>
> #include <linux/module.h>
> #include <linux/kernel.h>
> #include <linux/init.h>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 2/8] staging/fbtft: Include <linux/backlight.h>
2024-02-13 8:42 ` [PATCH v2 2/8] staging/fbtft: " Thomas Zimmermann
2024-02-14 16:29 ` Thomas Zimmermann
@ 2024-02-17 16:24 ` Greg KH
1 sibling, 0 replies; 14+ messages in thread
From: Greg KH @ 2024-02-17 16:24 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
linux-fbdev, dri-devel, nouveau, linux-staging
On Tue, Feb 13, 2024 at 09:42:20AM +0100, Thomas Zimmermann wrote:
> Resolved the proxy include via <linux/fb.h>, which does not require the
> backlight header.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header
2024-02-13 8:42 ` [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header Thomas Zimmermann
@ 2024-02-18 5:46 ` kernel test robot
2024-02-18 18:22 ` kernel test robot
1 sibling, 0 replies; 14+ messages in thread
From: kernel test robot @ 2024-02-18 5:46 UTC (permalink / raw)
To: Thomas Zimmermann, deller, kherbst, lyude, dakr, jani.nikula,
daniel, airlied, gregkh
Cc: oe-kbuild-all, linux-fbdev, dri-devel, nouveau, linux-staging,
Thomas Zimmermann, Jani Nikula
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@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
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header
2024-02-13 8:42 ` [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header Thomas Zimmermann
2024-02-18 5:46 ` kernel test robot
@ 2024-02-18 18:22 ` kernel test robot
1 sibling, 0 replies; 14+ messages in thread
From: kernel test robot @ 2024-02-18 18:22 UTC (permalink / raw)
To: Thomas Zimmermann, deller, kherbst, lyude, dakr, jani.nikula,
daniel, airlied, gregkh
Cc: oe-kbuild-all, linux-fbdev, dri-devel, nouveau, linux-staging,
Thomas Zimmermann, Jani Nikula
Hi Thomas,
kernel test robot noticed the following build errors:
[auto build test ERROR on staging/staging-testing]
[also build test ERROR 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/20240219/202402190101.UXQ9OLgS-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/20240219/202402190101.UXQ9OLgS-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/202402190101.UXQ9OLgS-lkp@intel.com/
All errors (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 +527 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
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v2 0/8] fbdev: Clean up include dependencies in header
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
` (7 preceding siblings ...)
2024-02-13 8:42 ` [PATCH v2 8/8] fbdev: Clean up include statements " Thomas Zimmermann
@ 2024-02-19 9:31 ` Thomas Zimmermann
8 siblings, 0 replies; 14+ messages in thread
From: Thomas Zimmermann @ 2024-02-19 9:31 UTC (permalink / raw)
To: deller, kherbst, lyude, dakr, jani.nikula, daniel, airlied,
gregkh
Cc: linux-fbdev, dri-devel, nouveau, linux-staging
A-b'd by Helge via email
Acked-by: Helge Deller <deller@gmx.de>
Am 13.02.24 um 09:42 schrieb Thomas Zimmermann:
> Remove unnecessary dependencies in the include statements of the
> header file <linux/fb.h>. Several files throughout the kernel include
> the fbdev header, so reducing dependencies positively affects other
> subsystems as well. Also fix up nouveau and fbtft, which need backlight.h
> in some their source files.
>
> v2:
> * include backlight.h in fbtft (kernel test robot)
>
> Thomas Zimmermann (8):
> drm/nouveau: Include <linux/backlight.h>
> staging/fbtft: Include <linux/backlight.h>
> fbdev: Do not include <linux/backlight.h> in header
> fbdev: Do not include <linux/fs.h> in header
> fbdev: Do not include <linux/notifier.h> in header
> fbdev: Do not include <linux/slab.h> in header
> fbdev: Clean up forward declarations in header file
> fbdev: Clean up include statements in header file
>
> drivers/gpu/drm/nouveau/dispnv50/disp.c | 1 +
> drivers/staging/fbtft/fb_ssd1351.c | 2 ++
> include/linux/fb.h | 24 +++++++++++++-----------
> 3 files changed, 16 insertions(+), 11 deletions(-)
>
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstrasse 146, 90461 Nuernberg, Germany
GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman
HRB 36809 (AG Nuernberg)
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2024-02-19 9:31 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-13 8:42 [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 1/8] drm/nouveau: Include <linux/backlight.h> Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 2/8] staging/fbtft: " Thomas Zimmermann
2024-02-14 16:29 ` Thomas Zimmermann
2024-02-17 16:24 ` Greg KH
2024-02-13 8:42 ` [PATCH v2 3/8] fbdev: Do not include <linux/backlight.h> in header Thomas Zimmermann
2024-02-18 5:46 ` kernel test robot
2024-02-18 18:22 ` kernel test robot
2024-02-13 8:42 ` [PATCH v2 4/8] fbdev: Do not include <linux/fs.h> " Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 5/8] fbdev: Do not include <linux/notifier.h> " Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 6/8] fbdev: Do not include <linux/slab.h> " Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 7/8] fbdev: Clean up forward declarations in header file Thomas Zimmermann
2024-02-13 8:42 ` [PATCH v2 8/8] fbdev: Clean up include statements " Thomas Zimmermann
2024-02-19 9:31 ` [PATCH v2 0/8] fbdev: Clean up include dependencies in header Thomas Zimmermann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).