--- drivers/video/console/fbcon.c_old 2003-03-07 15:56:33.000000000 +0100 +++ drivers/video/console/fbcon.c 2003-03-07 16:13:30.000000000 +0100 @@ -1044,6 +1044,9 @@ vc->vc_rows = nr_rows; } 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; + } if ((info->var.yres % vc->vc_font.height) && (info->var.yres_virtual % vc->vc_font.height < info->var.yres % vc->vc_font.height)) @@ -1822,9 +1825,10 @@ var.activate = FB_ACTIVATE_NOW; fb_set_var(&var, info); } - p->vrows = info->var.yres_virtual/fh; - y_diff = var.yres - info->var.yres; - if(y_diff > fh) p->vrows -= (y_diff / fh); + p->vrows = var.yres_virtual/fh; + if(var.yres > (fh * (height + 1))) { + p->vrows -= (var.yres - (fh * height)) / fh; + } return 0; } @@ -2096,6 +2100,11 @@ /* reset wrap/pan */ info->var.xoffset = info->var.yoffset = p->yscroll = 0; p->vrows = info->var.yres_virtual / h; +#if 0 /* INCOMPLETE - let the console gurus handle this */ + if(info->var.yres > (h * (vc->vc_rows + 1)) { + p->vrows -= (info->var.yres - (h * vc->vc_rows)) / h; + } +#endif if ((info->var.yres % h) && (info->var.yres_virtual % h < info->var.yres % h)) p->vrows--;