diff options
author | Antonino Daplas <adaplas@gmail.com> | 2007-10-16 04:29:55 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:23 -0400 |
commit | 4d8a2d986d3ee3ece9c3cefbb23425a22132492c (patch) | |
tree | 617d6e6ba3939e0e9866034840e99d01221299a2 /drivers/video/console/fbcon.c | |
parent | 15afdd433610c4ba0edf1f8a59915b3755af7365 (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.c | 2 |
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 |