summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2025-03-21 12:53:56 +0300
committerLee Jones <lee@kernel.org>2025-04-10 12:38:59 +0300
commitdfb4bf1ac40162ff5ea3715a10f6af2dcf3030c5 (patch)
tree11fa3641c98935590636bfff1a66578897744d17
parent7e3711eb87c584ed224a7ad7000eba36e6fa3a51 (diff)
downloadlinux-dfb4bf1ac40162ff5ea3715a10f6af2dcf3030c5.tar.xz
fbdev: Send old blank state in FB_EVENT_BLANK
The event FB_EVENT_BLANK sends the new blank state in the event's data field. Also send the old state. It's an additional field in the data array; existing receivers won't notice the difference. The backlight subsystem currently tracks blank state per display per backlight. That is not optimal as it ties backlight code to fbdev. A subsystem should not track internal state of another subsystem. With both, new and old, blank state in FB_EVENT_BLANK, the backlight code will not require its own state tracker any longer. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Simona Vetter <simona.vetter@ffwll.ch> Link: https://lore.kernel.org/r/20250321095517.313713-4-tzimmermann@suse.de Signed-off-by: Lee Jones <lee@kernel.org>
-rw-r--r--drivers/video/fbdev/core/fbmem.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
index 5d1529d300b7..9650b641d8e8 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -343,6 +343,7 @@ int fb_blank(struct fb_info *info, int blank)
{
int old_blank = info->blank;
struct fb_event event;
+ int data[2];
int ret;
if (!info->fbops->fb_blank)
@@ -351,8 +352,10 @@ int fb_blank(struct fb_info *info, int blank)
if (blank > FB_BLANK_POWERDOWN)
blank = FB_BLANK_POWERDOWN;
+ data[0] = blank;
+ data[1] = old_blank;
event.info = info;
- event.data = &blank;
+ event.data = data;
info->blank = blank;