Hi, I encountered the graphic corruption issue on IA64 machines by the following operations.
0. enable VGA console(default setting). disable serial console setting. 1. boot the system at run level 3 and login via text-mode console (/dev/tty1) as the root user. 2. disable console blanking. # setterm -blank 0 3. start X. 4. shutdown X. 5. start X again. 6. open the gnome-terminal and write someting to /dev/console. # ls -l > /dev/console The cause of this problem may be VGA console driver's misunderstanding mode(text/graphic). I confirmed this problem is fixed by the attached patch, but I don't know this is the correct fix. -------------------------------------------------------------------- VGA console driver can misunderstand the current mode(Text/Graphic) under "disable console blanking" setting. - start X --> vt_ioctl() drivers/char/vt_ioctl.c do_blank_screen(1) drivers/char/vt.c sw->con_blank(vc_cons[currcons].d, 1, 0) drivers/char/vt.c vgacon_blank() drivers/video/console/vgacon.c vga_is_gfx = 1 /* enter Graphic mode */ - shutdown X --> vt_ioctl() do_unblank_screen(1) drivers/char/vt.c sw->con_blank(vc_cons[currcons].d, 0, leaving_gfx) vgacon_blank() vga_is_gfx = 0 /* leave Graphic mode */ 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. ----------------------------------------------------------------------- Regards, Taku Izumi
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 <[EMAIL PROTECTED]> Signed-off-by: Taku Izumi <[EMAIL PROTECTED]> --- drivers/char/vt.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: linux-2.6.21.5/drivers/char/vt.c ======================================================================== --- linux-2.6.21.5.org/drivers/char/vt.c 2007-06-13 12:03:11.000000000 +0900 +++ linux-2.6.21.5/drivers/char/vt.c 2007-06-13 12:07:48.000000000 +0900 @@ -3419,12 +3419,12 @@ void do_unblank_screen(int leaving_gfx) return; } vc = vc_cons[fg_console].d; + blank_state = blank_normal_wait; if (vc->vc_mode != KD_TEXT) return; /* but leave console_blanked != 0 */ if (blankinterval) { mod_timer(&console_timer, jiffies + blankinterval); - blank_state = blank_normal_wait; } console_blanked = 0;