16,6 → 16,7 |
#include "vgaversion.h" |
#include "vgaio.h" |
#include "driver.h" |
#include "lrmi.h" |
|
int __svgalib_CRT_I; /* current CRT index register address */ |
int __svgalib_CRT_D; /* current CRT data register address */ |
1225,10 → 1226,8 |
int vga_setmode(int mode,int set_chipset) |
{ |
int modeflags=mode&0xfffff000; |
#ifndef VM86 |
BYTE p1,p2; |
#endif |
|
struct LRMI_regs vesa_r; |
|
printk(KERN_INFO "Setmode %i from %i\n", mode, CM); |
|
if(mode==-1)return vga_version; |
1255,28 → 1254,10 |
if (mode == TEXT) { |
/* Returning to textmode. */ |
|
cli(); |
|
X_REGS16 inregs, outregs; |
X_SREGS16 sregs; |
|
inregs.x.ax = 0x03; |
#ifndef VM86 |
p1 = inp(0x21); |
p2 = inp(0xA1); |
outp(0x21,0xFF); |
outp(0xA1,0xFF); |
X_callBIOS(0x10, &inregs, &outregs, &sregs); |
outp(0x21,p1); |
outp(0xA1,p2); |
#else |
vm86_callBIOS(0x10, &inregs, &outregs, &sregs); |
#endif |
vesa_r.eax = 0x03; |
__svgalib_LRMI_int(0x10,&vesa_r); |
|
if (SVGAMODE(prv_mode)) vga_setpage(0); |
|
sti(); |
|
} else { |
/* Setting a graphics mode. */ |
|