From: "Antonino A. Daplas" Call fb_blank() instead of info->fbops->fb_blank() to capture events on both device and console level. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton --- 25-akpm/drivers/video/console/fbcon.c | 19 ++++++++----------- 1 files changed, 8 insertions(+), 11 deletions(-) diff -puN drivers/video/console/fbcon.c~fbcon-catch-blank-events-on-both-device-and-console-level drivers/video/console/fbcon.c --- 25/drivers/video/console/fbcon.c~fbcon-catch-blank-events-on-both-device-and-console-level Thu Jan 13 15:40:48 2005 +++ 25-akpm/drivers/video/console/fbcon.c Thu Jan 13 15:40:48 2005 @@ -2014,6 +2014,7 @@ static void fbcon_generic_blank(struct v static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch) { struct fb_info *info = registered_fb[con2fb_map[vc->vc_num]]; + struct fbcon_ops *ops = info->fbcon_par; int active = !fbcon_is_inactive(vc, info); if (mode_switch) { @@ -2037,18 +2038,14 @@ static int fbcon_blank(struct vc_data *v } if (active) { - struct fbcon_ops *ops = info->fbcon_par; + if (ops->blank_state != blank) { + ops->blank_state = blank; + fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW); + ops->cursor_flash = (!blank); - fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW); - ops->cursor_flash = (!blank); - - if (ops->blank_state != blank) { - if (info->fbops->fb_blank && - info->fbops->fb_blank(blank, info)) - fbcon_generic_blank(vc, info, blank); - - ops->blank_state = blank; - } + if (fb_blank(info, blank)) + fbcon_generic_blank(vc, info, blank); + } if (!blank) update_screen(vc->vc_num); _