Let the OS instead of X save/restore text console fonts on Linux. So far we

relied on the generic VGA layer to restore text console fonts for us
    when shutting down the server or VT switching back to the text console.
    This has worked rather well but it has some downsides on Linux: a. Many
    people use fbdev as console text mode. In this case it is not necessary
    to save/restore console fonts as the console is running in graphics
    mode anyway. b. Some architectures don't have a fbdev console but
    require a full POST of even the primary card (ie. IA64). This posting
    has to take place before we even have a chance to save anything.
    Therefore the fonts we save are the once written to the chip by POST,
    not what has been programmed by the user. c. Certain chipsets utilize
    the BIOS to perform mode setting. This may interfer with the vga
    save/restore font function in a strange way. It would therefore be
    preferrable to let the OS - which has been used to set up the font in
    the first place - take care of saving/restoring the data. I will attach
    a patch which will do so for Linux. To make this fully functional a
    small patch needs to be applied to the Linux kernel. To disable this
    feature add: #define DoOSFontRestore NO to your host.def. (Bugzilla
    #2277)
This commit is contained in:
Egbert Eich 2005-01-14 18:42:26 +00:00
commit 16f9d2d72a
6 changed files with 371 additions and 36 deletions

View file

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/VTsw_usl.c,v 3.4 2002/09/16 18:06:14 eich Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/VTsw_usl.c,v 3.1.4.1 1998/06/05 16:23:21 dawes Exp $ */
/*
* Copyright 1993 by David Wexelblat <dwex@XFree86.org>
*
@ -29,6 +29,10 @@
#include "xf86Priv.h"
#include "xf86_OSlib.h"
#ifdef OSHEADER
# include OSHEADER
#endif
/*
* Handle the VT-switching interface for OSs that use USL-style ioctl()s
* (the sysv, sco, and linux subdirs).
@ -62,6 +66,9 @@ xf86VTSwitchAway()
}
else
{
#ifdef OSSWITCHAWAY
OSSWITCHAWAY;
#endif
return(TRUE);
}
}