Messages in this thread Patch in this message | | | Subject | Re: [Linux-fbdev-devel] fbcon scrolling + initialisation oddity | From | Antonino Daplas <> | Date | 20 Jan 2003 09:29:38 +0800 |
| |
On Mon, 2003-01-20 at 04:03, Russell King wrote: > 1. YWRAP scrolling. > > There appears to be something weird going on with fbcon scrolling in 2.5.59 > when using YWRAP. The best example is what happens when scrolling a large > file (say, /etc/termcap) in less. > > While scrolling down in the file, the screen scrolls correctly for the > most part. At some point, the screen stops scrolling and the last line > which normally displays the less prompt character ":" is replaced by > the next line of text. Continuing to scroll down produces no visible > changes. > > Once enough scrolling has occurred, suddenly the screen jumps and we get > the proper text displayed. > > Also, if you scroll line by line until the ":" is replaced by text as > above, scrolling back up one line replaces the ":" and scrolling upwards > scrolls the screen up correctly. > > As an additional behaviour point, if you scroll down until the ":" just > disappears and then some extra lines, hit 'q' to exit less, followed by > ^L, most of the screen is cleared, except for the very top few lines. > I haven't checked, but I suspect the number of lines left at the top of > the screen is equal to the number of lines we're off the bottom of the > screen. >
fb_pan_display() does not test for YWRAP. Can you try this?
Tony
diff -Naur linux-2.5.59/drivers/video/fbmem.c linux/drivers/video/fbmem.c --- linux-2.5.59/drivers/video/fbmem.c 2003-01-20 01:10:12.000000000 +0000 +++ linux/drivers/video/fbmem.c 2003-01-20 01:14:27.000000000 +0000 @@ -724,11 +724,15 @@ { int xoffset = var->xoffset; int yoffset = var->yoffset; + int ybottom = var->yoffset; int err; + if (!(var->vmode & FB_VMODE_YWRAP)) + ybottom += info->var.yres; + if (xoffset < 0 || yoffset < 0 || !info->fbops->fb_pan_display || xoffset + info->var.xres > info->var.xres_virtual || - yoffset + info->var.yres > info->var.yres_virtual) + ybottom > info->var.yres_virtual) return -EINVAL; if ((err = info->fbops->fb_pan_display(var, info))) return err; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |