vgabios: Minor fixes to struct vbe_info definition.
[seabios.git] / vgasrc / vga.c
index e7b96ff734f290d041d8dc0c63c436ede750bb2a..539cd7aa959a179058bb38451972990e663fb000 100644 (file)
 #include "optionroms.h" // struct pci_data
 #include "config.h" // CONFIG_*
 #include "vbe.h" // vbe_*
+#include "geodelx.h" // geodelx_init
 
 // XXX
 #define DEBUG_VGA_POST 1
 #define DEBUG_VGA_10 3
 
-#define SET_VGA(var, val) SET_FARVAR(get_global_seg(), (var), (val))
 
 /****************************************************************
  * PCI Data
@@ -1226,7 +1226,7 @@ handle_104f00(struct bregs *regs)
 
     SET_FARVAR(seg, info->oem_string,
             SEGOFF(get_global_seg(), (u32)VBE_OEM_STRING));
-    SET_FARVAR(seg, info->capabilities[0], 0x1); /* 8BIT DAC */
+    SET_FARVAR(seg, info->capabilities, 0x1); /* 8BIT DAC */
 
     /* We generate our mode list in the reserved field of the info block */
     SET_FARVAR(seg, info->video_mode, SEGOFF(seg, regs->di + 34));
@@ -1284,7 +1284,7 @@ handle_104f01(struct bregs *regs)
     SET_FARVAR(seg, info->win_size, 64); /* Bank size 64K */
     SET_FARVAR(seg, info->winA_seg, 0xA000);
     SET_FARVAR(seg, info->winB_seg, 0x0);
-    SET_FARVAR(seg, info->win_func_ptr, 0x0);
+    SET_FARVAR(seg, info->win_func_ptr.segoff, 0x0);
     SET_FARVAR(seg, info->bytes_per_scanline, modeinfo.linesize);
     SET_FARVAR(seg, info->xres, modeinfo.width);
     SET_FARVAR(seg, info->yres, modeinfo.height);
@@ -1570,6 +1570,9 @@ vga_post(struct bregs *regs)
 
     vgahw_init();
 
+    if (CONFIG_VGA_GEODELX)
+        geodelx_init();
+
     init_bios_area();
 
     vbe_init(regs->ah, regs->al);
@@ -1582,9 +1585,7 @@ vga_post(struct bregs *regs)
 
     // XXX - clear screen and display info
 
-    // XXX: fill it
-    SET_VGA(video_save_pointer_table.videoparam
-            , SEGOFF(get_global_seg(), (u32)video_param_table));
+    build_video_param();
 
     // Fixup checksum
     extern u8 _rom_header_size, _rom_header_checksum;