• Samuel Thibault's avatar
    [PATCH] SVGATextMode fix · 0aec4867
    Samuel Thibault authored
    Fix bug 5441.
    
    I didn't know about messy programs like svgatextmode...  Couldn't this be
    integrated in some linux/drivers/video/console/svgacon.c ?...  So because
    of the existence of the svgatextmode program, the kernel is not supposed to
    touch to CRT_OVERFLOW/SYNC_END/DISP/DISP_END/OFFSET ?
    
    Disabling the check in vgacon_resize() might help indeed, but I'm really
    not sure whether it will work for any chipset: in my patch, CRT registers
    are set at each console switch, since stty rows/cols apply to consoles
    separately...
    
    The attached solution is to keep the test, but if it fails, we assume that
    the caller knows what it does (i.e.  it is svgatextmode) and then disable
    any further call to vgacon_doresize.  Svgatextmode is usually used to
    _expand_ the display, not to shrink it.  And it is harmless in the case of
    a too big stty rows/cols: the display will just be cropped.  I tested it on
    my laptop, and it works fine with svgatextmode.
    
    A better solution would be that svgatextmode explicitely tells the kernel
    not to care about video timing, but for this an interface needs be defined
    and svgatextmode be patched.
    Signed-off-by: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
    Cc: "Antonino A. Daplas" <adaplas@pol.net>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    0aec4867
vgacon.c 34.2 KB