/shark/trunk/drivers/fb/vesa.h |
---|
89,5 → 89,6 |
int vbe_setbank(ModeInfoBlock *ModeInfo, BYTE bank); |
void vbe_showmodeinfo (ModeInfoBlock *ModeInfo); |
int vbe_checkmode(WORD mode); |
void vbe_restore_vga(void); |
DWORD vbe_getmem(void); |
/shark/trunk/drivers/fb/vesafb.c |
---|
180,6 → 180,14 |
return 0; |
} |
static int vesafb_release(struct fb_info *info, int user) |
{ |
vbe_restore_vga(); |
return 0; |
} |
static struct fb_ops vesafb_ops = { |
.owner = THIS_MODULE, |
.fb_setcolreg = vesafb_setcolreg, |
188,6 → 196,7 |
.fb_copyarea = cfb_copyarea, |
.fb_imageblit = cfb_imageblit, |
.fb_cursor = soft_cursor, |
.fb_release = vesafb_release, |
}; |
int __init vesafb_setup(char *options) |
/shark/trunk/drivers/fb/gdvesa.c |
---|
59,6 → 59,30 |
return 1; |
} |
void vbe_restore_vga(void) { |
X_REGS16 inregs, outregs; |
X_SREGS16 sregs; |
#ifndef VM86 |
BYTE p1,p2; |
#endif |
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 |
} |
int vbe_getinfo(void) |
{ |
X_REGS16 inregs, outregs; /* registri normali */ |