From d98fbdba7d25fc2e2f701ed82c9b15e91078a743 Mon Sep 17 00:00:00 2001 From: Thomas Zimmermann Date: Fri, 23 Oct 2026 15:16:16 +0200 Subject: [PATCH] vgacon: Implement struct consw.con_unblank Implement con_unblank from struct consw with the VESA_NO_BLANKING case from vgacon_blank(). The new function is called vgacon_unblank(). Remove the duplicated code from vgacon_blank(). Signed-off-by: Thomas Zimmermann Signed-off-by: Helge Deller --- drivers/video/console/vgacon.c | 46 +++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index 2dcb1e38bd6b..e7e6750f1f87 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c @@ -778,40 +778,45 @@ static bool vgacon_blank(struct vc_data *c, enum vesa_blank_mode blank, bool mode_switch) { switch (blank) { - case VESA_NO_BLANKING: /* Unblank */ - if (vga_vesa_blanked) { - vga_vesa_unblank(&vgastate); - vga_vesa_blanked = VESA_NO_BLANKING; - } - if (vga_palette_blanked) { - vga_set_palette(c, color_table); - vga_palette_blanked = false; - return 0; - } - vga_is_gfx = false; - /* Tell console.c that it has to restore the screen itself */ - return 1; - case VESA_VSYNC_SUSPEND: /* Normal blanking */ + case VESA_NO_BLANKING: /* Normal blanking */ if (!mode_switch && vga_video_type == VIDEO_TYPE_VGAC) { vga_pal_blank(&vgastate); vga_palette_blanked = true; - return 0; + return false; } vgacon_set_origin(c); - scr_memsetw((void *) vga_vram_base, BLANK, - c->vc_screenbuf_size); + scr_memsetw((void *)vga_vram_base, BLANK, c->vc_screenbuf_size); if (mode_switch) vga_is_gfx = true; - return 1; + return true; default: /* VESA blanking */ if (vga_video_type == VIDEO_TYPE_VGAC) { - vga_vesa_blank(&vgastate, blank - 1); + vga_vesa_blank(&vgastate, blank); vga_vesa_blanked = blank; } - return 0; + return false; } } +static bool vgacon_unblank(struct vc_data *c, bool mode_switch) +{ + if (vga_vesa_blanked) { + vga_vesa_unblank(&vgastate); + vga_vesa_blanked = VESA_NO_BLANKING; + } + + if (vga_palette_blanked) { + vga_set_palette(c, color_table); + vga_palette_blanked = false; + return false; + } + + vga_is_gfx = false; + + /* Tell console.c that it has to restore the screen itself */ + return true; +} + /* * PIO_FONT support. * @@ -1178,6 +1183,7 @@ const struct consw vga_con = { .con_scroll = vgacon_scroll, .con_switch = vgacon_switch, .con_blank = vgacon_blank, + .con_unblank = vgacon_unblank, .con_font_set = vgacon_font_set, .con_font_get = vgacon_font_get, .con_resize = vgacon_resize,