Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 476 → Rev 477

/shark/trunk/drivers/fb/vesafb.c
30,6 → 30,10
#define dac_reg (0x3c8)
#define dac_val (0x3c9)
 
#include <vesa.h>
 
#define INIT_MODE 0x4101
 
/* --------------------------------------------------------------------- */
 
static struct fb_var_screeninfo vesafb_defined __initdata = {
216,14 → 220,51
return 0;
}
 
extern VbeInfoBlock VbeInfo;
extern int vbe_getifo(void);
extern void vm86_init(void);
 
int __init vesafb_init(void)
{
ModeInfoBlock ModeInfo;
int video_cmap_len;
int i;
 
vm86_init();
 
if (vbe_getinfo())
return -EIO;
 
printk(KERN_INFO "VBE Extension Found.\n");
 
screen_info.lfb_base = vbe_getmodeinfo(&ModeInfo,INIT_MODE);
 
screen_info.orig_video_isVGA = VIDEO_TYPE_VLFB;
 
if (screen_info.orig_video_isVGA != VIDEO_TYPE_VLFB)
return -ENXIO;
 
screen_info.lfb_depth = ModeInfo.BitsPerPixel;
screen_info.lfb_width = ModeInfo.XResolution;
screen_info.lfb_height = ModeInfo.YResolution;
screen_info.lfb_linelength = ModeInfo.BytesPerScanLine;
screen_info.lfb_size = VbeInfo.TotalMemory;
screen_info.pages = ModeInfo.NumberOfImagePages;
 
screen_info.vesapm_seg = 0;
screen_info.vesapm_off = 0;
 
screen_info.red_pos = ModeInfo.RedFieldPosition;
screen_info.red_size = ModeInfo.RedMaskSize;
screen_info.green_pos = ModeInfo.GreenFieldPosition;
screen_info.green_size = ModeInfo.GreenMaskSize;
screen_info.blue_pos = ModeInfo.BlueFieldPosition;
screen_info.blue_size = ModeInfo.BlueMaskSize;
screen_info.rsvd_pos = ModeInfo.RsvdFieldPosition;
screen_info.rsvd_size = ModeInfo.RsvdMaskSize;
 
vbe_setmode(INIT_MODE);
 
vesafb_fix.smem_start = screen_info.lfb_base;
vesafb_defined.bits_per_pixel = screen_info.lfb_depth;
if (15 == vesafb_defined.bits_per_pixel)
231,7 → 272,7
vesafb_defined.xres = screen_info.lfb_width;
vesafb_defined.yres = screen_info.lfb_height;
vesafb_fix.line_length = screen_info.lfb_linelength;
vesafb_fix.smem_len = screen_info.lfb_size * 65536;
vesafb_fix.smem_len = screen_info.lfb_size;
vesafb_fix.visual = (vesafb_defined.bits_per_pixel == 8) ?
FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR;
 
285,6 → 326,7
for (i = pmi_base[3]/2; pmi_base[i] != 0xffff; i++)
printk("%x ",pmi_base[i]);
printk("\n");
 
if (pmi_base[i] != 0xffff) {
/*
* memory areas not supported (yet?)