aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorizumi <izumi2005@soft.fujitsu.com>2007-07-17 07:05:49 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-17 13:23:13 -0400
commitb6e8f00fcd56b426371334d722d1f3fb251b7290 (patch)
tree1fe421e55fc916dfa25f6fea3f821d1722444bcb /drivers
parent1a3f28817e2a3f0be67ec8afa0cfd779adb5d41d (diff)
Fix the graphic corruption issue on IA64 machines
VGA console driver can misunderstand the current mode(Text/Graphic) under "disable console blanking" setting. When "disable console blank" is set (blankinterval=0), "do_unblank_screen()" function returns without changing "blank_state", and when "blank_state" is "blank_off", "do_blank_screen() function returns without invoking sw->con_blank() function. That's why VGA console driver can misunderstand the current mode. Signed-off-by: Nobuhiro Tachino <ntachino@redhat.com> Signed-off-by: Taku Izumi <izumi2005@soft.fujitsu.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: "Luck, Tony" <tony.luck@intel.com> Acked-by: Pete Zaitcev <zaitcev@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/vt.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index 45b33cf97643..edb7002a3216 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -3506,9 +3506,6 @@ void do_blank_screen(int entering_gfx)
3506 } 3506 }
3507 return; 3507 return;
3508 } 3508 }
3509 if (blank_state != blank_normal_wait)
3510 return;
3511 blank_state = blank_off;
3512 3509
3513 /* entering graphics mode? */ 3510 /* entering graphics mode? */
3514 if (entering_gfx) { 3511 if (entering_gfx) {
@@ -3516,10 +3513,15 @@ void do_blank_screen(int entering_gfx)
3516 save_screen(vc); 3513 save_screen(vc);
3517 vc->vc_sw->con_blank(vc, -1, 1); 3514 vc->vc_sw->con_blank(vc, -1, 1);
3518 console_blanked = fg_console + 1; 3515 console_blanked = fg_console + 1;
3516 blank_state = blank_off;
3519 set_origin(vc); 3517 set_origin(vc);
3520 return; 3518 return;
3521 } 3519 }
3522 3520
3521 if (blank_state != blank_normal_wait)
3522 return;
3523 blank_state = blank_off;
3524
3523 /* don't blank graphics */ 3525 /* don't blank graphics */
3524 if (vc->vc_mode != KD_TEXT) { 3526 if (vc->vc_mode != KD_TEXT) {
3525 console_blanked = fg_console + 1; 3527 console_blanked = fg_console + 1;