aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/console/fbcon.c
diff options
context:
space:
mode:
authorAntonino Daplas <adaplas@gmail.com>2007-10-16 04:29:55 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 12:43:23 -0400
commit4d8a2d986d3ee3ece9c3cefbb23425a22132492c (patch)
tree617d6e6ba3939e0e9866034840e99d01221299a2 /drivers/video/console/fbcon.c
parent15afdd433610c4ba0edf1f8a59915b3755af7365 (diff)
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 <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/console/fbcon.c')
-rw-r--r--drivers/video/console/fbcon.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index 97a0224a0cf0..0f32f4a00b2d 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)
2405 update_screen(vc); 2405 update_screen(vc);
2406 } 2406 }
2407 2407
2408 if (fbcon_is_inactive(vc, info) || 2408 if (mode_switch || fbcon_is_inactive(vc, info) ||
2409 ops->blank_state != FB_BLANK_UNBLANK) 2409 ops->blank_state != FB_BLANK_UNBLANK)
2410 fbcon_del_cursor_timer(info); 2410 fbcon_del_cursor_timer(info);
2411 else 2411 else