lkml.org 
[lkml]   [2007]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH][BUG] Fix the graphic corruption issue on IA64 machines
HI,

As a result of the discussion with Pete Zaitcev(zaitcev@redhat.com),
I re-create a patch. This attached patch is revised version.

He pointed out that the former patch may violate the assumptions and
was not safe. Concretely speaking, he concerned that an unexpected
problem may arise somewhere if "blank_state", which is intended to
reflect the state of timer, was shuffled arround.

This revised patch reflects his pointed out. I confirmed this also fixed
the problem.

Regards,
Taku Izumi <izumi.taku@jp.fujitsu.com>
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 <tachino@jp.fujitsu.com>
Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
---
drivers/char/vt.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)


Index: linux-2.6.22/drivers/char/vt.c
=============================================================================
--- linux-2.6.22.org/drivers/char/vt.c 2007-06-27 11:40:03.000000000 -0400
+++ linux-2.6.22/drivers/char/vt.c 2007-06-27 11:24:32.000000000 -0400
@@ -3491,9 +3491,6 @@ void do_blank_screen(int entering_gfx)
}
return;
}
- if (blank_state != blank_normal_wait)
- return;
- blank_state = blank_off;

/* entering graphics mode? */
if (entering_gfx) {
@@ -3501,10 +3498,15 @@ void do_blank_screen(int entering_gfx)
save_screen(vc);
vc->vc_sw->con_blank(vc, -1, 1);
console_blanked = fg_console + 1;
+ blank_state = blank_off;
set_origin(vc);
return;
}

+ if (blank_state != blank_normal_wait)
+ return;
+ blank_state = blank_off;
+
/* don't blank graphics */
if (vc->vc_mode != KD_TEXT) {
console_blanked = fg_console + 1;
\
 
 \ /
  Last update: 2007-06-29 05:31    [W:0.031 / U:0.644 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site