Re: [Linux-fbdev-devel] [PATCH] fb accel capabilities (resend against 2.6.7-rc2)

From: Antonino A. Daplas
Date: Thu Jun 03 2004 - 19:11:18 EST


On Friday 04 June 2004 02:01, David Eger wrote:

>
> On the down side, panning makes screen corruption for me... time to
> investigate to see if fbcon or radeonfb is to blame... perhaps panning is
> just incompatible with accel engine at all in radeon...
>

The one time I saw screen corruption with panning was when the console virtual
rows (p->vrows in fbcon.c) were unconditionally set to var->yres_virtual/
fontheight. In most cases, this will cause screen corruption (or even a GPU
crash) when you scroll down to end of virtual memory. Symptoms are corrupted
data when you pan to p->vrows, fixed by changing to another console and back
again.

The correct thing to do is not to scroll to the very end, but scroll only to a
point where you still have enough fb memory at the end of fbmem to display 1
screenful of data. This is done by subtracting several lines to p->vrows as
illustrated by this code snippet scattered in fbcon.c

p->vrows = info->var.yres_virtual / vc->vc_font.height;
if(info->var.yres > (vc->vc_font.height * (vc->vc_rows + 1))) {
p->vrows -= (info->var.yres - (vc->vc_font.height * vc->vc_rows)) /
vc->vc_font.height;
}

Or this in fbcon_resize()

p->vrows = var.yres_virtual/fh;
if (var.yres > (fh * (height + 1)))
p->vrows -= (var.yres - (fh * height)) / fh;

The above code is scattered because we cannot seem to find a central location
to strategically place it because of the very confusing console code :-(

Is it possible that the changes in your development tree might have failed to
appropriately update p->vrows?

Tony

P.S. I believe this corruption was spotted with fix contributed by Thomas
last year.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/