This fixes "margin colour" (colour used to clear top and bottom margins - e.g. remaining half of line at the bottom of 100x37 console on 800x600 framebuffer). I don't know what was the intention behind using attr_bgcol_ec() here, but it caused using of background colour of last erase character to clear margins (thus it was changing from time to time when switching consoles or so). I think that margin colour should be equal overscan colour, which seems to be always black. This patch changes margin colour to black (or colour 0 in palette modes) in accel_clear_margins() and removes unused then bgshift variable. -- Jakub Bogusz --- linux-2.6.4/drivers/video/console/fbcon.c.orig 2004-03-11 03:55:36.000000000 +0100 +++ linux-2.6.4/drivers/video/console/fbcon.c 2004-03-17 20:47:38.749388312 +0100 @@ -489,7 +489,6 @@ void accel_clear_margins(struct vc_data *vc, struct fb_info *info, int bottom_only) { - int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; unsigned int cw = vc->vc_font.width; unsigned int ch = vc->vc_font.height; unsigned int rw = info->var.xres - (vc->vc_cols*cw); @@ -498,7 +497,7 @@ unsigned int bs = info->var.yres - bh; struct fb_fillrect region; - region.color = attr_bgcol_ec(bgshift, vc); + region.color = 0; /* margins color = overscan color */ region.rop = ROP_COPY; if (rw && !bottom_only) {