Alan Cox requested that we check the kernel version before we use kernel
VGA font save/restore as the required features have been added to Linux 2.6.11 (Bugzilla #2277).
This commit is contained in:
parent
d7263b11f0
commit
55736aa8c1
|
@ -112,10 +112,16 @@ getfont(int *width, int *height,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define VERSION_LEN 31
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
lnx_savefont(void)
|
lnx_savefont(void)
|
||||||
{
|
{
|
||||||
unsigned char *fontdata;
|
unsigned char *fontdata;
|
||||||
|
#if CHECK_OS_VERSION
|
||||||
|
char kernel_version[VERSION_LEN + 1];
|
||||||
|
int k_major, k_minor, k_release;
|
||||||
|
#endif
|
||||||
int size;
|
int size;
|
||||||
int fd;
|
int fd;
|
||||||
int width = 32, height = 32, charcount = 2048;
|
int width = 32, height = 32, charcount = 2048;
|
||||||
|
@ -123,6 +129,29 @@ lnx_savefont(void)
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
ErrorF("SAVE font\n");
|
ErrorF("SAVE font\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CHECK_OS_VERSION
|
||||||
|
/* Check if the kernel has full support for this */
|
||||||
|
if ((fd = open ("/proc/sys/kernel/osrelease",O_RDONLY)) == -1) {
|
||||||
|
close (fd);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
size = read(fd, kernel_version, VERSION_LEN);
|
||||||
|
close (fd);
|
||||||
|
|
||||||
|
if (size < 0)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
size = sscanf(kernel_version, "%d.%d.%d",&k_major,&k_minor,&k_release);
|
||||||
|
if (size < 3
|
||||||
|
|| (k_major < 2)
|
||||||
|
|| ((k_major == 2)
|
||||||
|
&& ((k_minor < 6)
|
||||||
|
|| ( k_minor == 6
|
||||||
|
&& k_release < 11))))
|
||||||
|
return TRUE;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* if we are in fbdev mode we don't bother saving fonts */
|
/* if we are in fbdev mode we don't bother saving fonts */
|
||||||
if ((fd = open ("/dev/fb0",O_RDWR)) != -1) {
|
if ((fd = open ("/dev/fb0",O_RDWR)) != -1) {
|
||||||
close (fd);
|
close (fd);
|
||||||
|
|
Loading…
Reference in New Issue