lkml.org 
[lkml]   [2007]   [May]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: X display shift with disabled console blanking
From
Date
On Tue, 2007-05-01 at 13:17 +0100, James Pearson wrote:
> Antonino A. Daplas wrote:
> > On Mon, 2007-04-30 at 13:58 +0100, James Pearson wrote:
> >
> >>Antonino A. Daplas wrote:
> >>
> >>>On Fri, 2007-04-27 at 18:08 +0100, James Pearson wrote:

> It does indeed seem that the switching back and forth between text and
> graphics does appear to be part of the issue - in my previous testing I
> probably did do this (but didn't include this in my recipe above) - so
> here is a new 'recipe' that shows the problem (for me)
>
> boot to run level 3
>
> if not root, then make sure /dev/console is writeable
>
> login and type:
>
> setterm -blank 0
>
> start X
>
> type into an xterm:
>
> while true; do echo "" > /dev/console; usleep 100000; done
>
> while the above loop is running switch to the text console and back
> again (Ctrl-Alt-F1 then Ctrl-Alt-F7)
>
> ... and the screen will be shifting (and wrapping) to the left.
>

Okay, this makes me see the problem more clearly. It looks like that
vt/console layer is unreliable in terms of checking for the
text/graphics mode of the current console. Instead of auditing the
console code, I'll just have vgacon check for the mode. Try the
attached patch and let me know if it helps.

Tony
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
index d0d2733..2460b82 100644
--- a/drivers/video/console/vgacon.c
+++ b/drivers/video/console/vgacon.c
@@ -660,6 +660,9 @@ #endif

static void vgacon_cursor(struct vc_data *c, int mode)
{
+ if (c->vc_mode != KD_TEXT)
+ return;
+
vgacon_restore_screen(c);

switch (mode) {
@@ -1318,7 +1321,7 @@ static int vgacon_scroll(struct vc_data
unsigned long oldo;
unsigned int delta;

- if (t || b != c->vc_rows || vga_is_gfx)
+ if (t || b != c->vc_rows || vga_is_gfx || c->vc_mode != KD_TEXT)
return 0;

if (!vga_hardscroll_enabled || lines >= c->vc_rows / 2)
\
 
 \ /
  Last update: 2007-05-01 17:23    [W:0.041 / U:0.376 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site