#include "biosvar.h" // GET_BDA
#include "vgabios.h" // VGAREG_*
#include "util.h" // memset
-#include "stdvga.h" // VGAREG_VGA_CRTC_ADDRESS
+#include "stdvga.h" // stdvga_crtc_write
/****************************************************************
****************************************************************/
static void crtce_lock(void)
{
- outb(EXTENDED_REGISTER_LOCK , VGAREG_VGA_CRTC_ADDRESS);
- outb(CRTCE_LOCK, VGAREG_VGA_CRTC_DATA);
+ stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_REGISTER_LOCK
+ , CRTCE_LOCK);
}
static void crtce_unlock(void)
{
- outb(EXTENDED_REGISTER_LOCK , VGAREG_VGA_CRTC_ADDRESS);
- outb(CRTCE_UNLOCK, VGAREG_VGA_CRTC_DATA);
+ stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_REGISTER_LOCK
+ , CRTCE_UNLOCK);
}
static u8 crtce_read(u8 reg)
{
- u8 val;
-
crtce_unlock();
- outb(reg , VGAREG_VGA_CRTC_ADDRESS);
- val = inb(VGAREG_VGA_CRTC_DATA);
+ u8 val = stdvga_crtc_read(VGAREG_VGA_CRTC_ADDRESS, reg);
crtce_lock();
-
return val;
}
static void crtce_write(u8 reg, u8 val)
{
crtce_unlock();
- outb(reg , VGAREG_VGA_CRTC_ADDRESS);
- outb(val, VGAREG_VGA_CRTC_DATA);
+ stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, reg, val);
crtce_lock();
}
int i;
for (i=0; i<ARRAY_SIZE(new_crtc); i++) {
u8 *crtc = GET_GLOBAL(new_crtc[i]);
- if (!crtc)
- continue;
- struct vgamode_s *vmode_g = stdvga_find_mode(i);
- if (!vmode_g)
- continue;
- struct stdvga_mode_s *stdmode_g = container_of(
- vmode_g, struct stdvga_mode_s, info);
- SET_VGA(stdmode_g->crtc_regs, crtc);
+ if (crtc)
+ stdvga_override_crtc(i, crtc);
}
ret |= vp_setup();