From 4d8a2d986d3ee3ece9c3cefbb23425a22132492c Mon Sep 17 00:00:00 2001 From: Antonino Daplas Date: Tue, 16 Oct 2007 01:29:55 -0700 Subject: fbcon: delay the start of the cursor timer until a con_switch() As reported in Bugzilla Bug 9093, upon switching to X, a small rectangular cursor can still be seen blinking in the upper left part of the screen. It is fbcon's text cursor. This is caused by a strange ioctl(..., KDSETMODE, KD_TEXT) call done by something in userspace, perhaps by X itself, while the tty is still in graphics mode. And when the tty is in KD_TEXT mode, the cursor timer is restarted. Although this is a userspace problem, we can work around it by delaying the restart of the cursor timer until an fbcon_switch() is called. In other words, the cursor timer will not be restarted even if a KD_TEXT mode switch is requested. Regression potential: Present but low Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/video/console/fbcon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers') diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 97a0224a0cf..0f32f4a00b2 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c @@ -2405,7 +2405,7 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch) update_screen(vc); } - if (fbcon_is_inactive(vc, info) || + if (mode_switch || fbcon_is_inactive(vc, info) || ops->blank_state != FB_BLANK_UNBLANK) fbcon_del_cursor_timer(info); else -- cgit v1.2.3