diff options
author | Thomas Zimmermann <tzimmermann@suse.de> | 2025-03-21 12:53:56 +0300 |
---|---|---|
committer | Lee Jones <lee@kernel.org> | 2025-04-10 12:38:59 +0300 |
commit | dfb4bf1ac40162ff5ea3715a10f6af2dcf3030c5 (patch) | |
tree | 11fa3641c98935590636bfff1a66578897744d17 | |
parent | 7e3711eb87c584ed224a7ad7000eba36e6fa3a51 (diff) | |
download | linux-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.c | 5 |
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 = ␣ + event.data = data; info->blank = blank; |