If we unlock CRTC access once we can simply make use of standard VGA IO port access functions. Signed-off-by: Christian Gmeiner christian.gmeiner@gmail.com --- vgasrc/geodevga.c | 38 ++++++-------------------------------- 1 file changed, 6 insertions(+), 32 deletions(-)
diff --git a/vgasrc/geodevga.c b/vgasrc/geodevga.c index f7fd895..31632e7 100644 --- a/vgasrc/geodevga.c +++ b/vgasrc/geodevga.c @@ -107,36 +107,6 @@ static int legacyio_check(void) }
/**************************************************************** -* Extened CRTC Register functions -****************************************************************/ -static void crtce_lock(void) -{ - stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_REGISTER_LOCK - , CRTCE_LOCK); -} - -static void crtce_unlock(void) -{ - stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_REGISTER_LOCK - , CRTCE_UNLOCK); -} - -static u8 crtce_read(u8 reg) -{ - crtce_unlock(); - u8 val = stdvga_crtc_read(VGAREG_VGA_CRTC_ADDRESS, reg); - crtce_lock(); - return val; -} - -static void crtce_write(u8 reg, u8 val) -{ - crtce_unlock(); - stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, reg, val); - crtce_lock(); -} - -/**************************************************************** * Display Controller Functions ****************************************************************/ static u32 dc_read(u16 seg, u32 reg) @@ -174,7 +144,7 @@ static u16 dc_map(u16 seg) { u8 reg;
- reg = crtce_read(EXTENDED_MODE_CONTROL); + reg = stdvga_crtc_read(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_MODE_CONTROL); reg &= 0xf9; switch (seg) { case SEG_GRAPH: @@ -191,7 +161,7 @@ static u16 dc_map(u16 seg) break; }
- crtce_write(EXTENDED_MODE_CONTROL,reg); + stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_MODE_CONTROL,reg); return seg; }
@@ -366,6 +336,10 @@ int geodevga_init(void) // Device should be at 00:01.1 SET_VGA(VgaBDF, pci_to_bdf(0, 1, 1));
+ // unlock crtc so we can use Standard VGA IO port access functions + stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_REGISTER_LOCK + , CRTCE_UNLOCK); + vp_setup(); dc_setup();
Ignore this one one... will rework it --- Christian Gmeiner, MSc
2012/8/31 Christian Gmeiner christian.gmeiner@gmail.com:
If we unlock CRTC access once we can simply make use of standard VGA IO port access functions. Signed-off-by: Christian Gmeiner christian.gmeiner@gmail.com
vgasrc/geodevga.c | 38 ++++++-------------------------------- 1 file changed, 6 insertions(+), 32 deletions(-)
diff --git a/vgasrc/geodevga.c b/vgasrc/geodevga.c index f7fd895..31632e7 100644 --- a/vgasrc/geodevga.c +++ b/vgasrc/geodevga.c @@ -107,36 +107,6 @@ static int legacyio_check(void) }
/**************************************************************** -* Extened CRTC Register functions -****************************************************************/ -static void crtce_lock(void) -{
- stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_REGISTER_LOCK
, CRTCE_LOCK);
-}
-static void crtce_unlock(void) -{
- stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_REGISTER_LOCK
, CRTCE_UNLOCK);
-}
-static u8 crtce_read(u8 reg) -{
- crtce_unlock();
- u8 val = stdvga_crtc_read(VGAREG_VGA_CRTC_ADDRESS, reg);
- crtce_lock();
- return val;
-}
-static void crtce_write(u8 reg, u8 val) -{
- crtce_unlock();
- stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, reg, val);
- crtce_lock();
-}
-/****************************************************************
- Display Controller Functions
****************************************************************/ static u32 dc_read(u16 seg, u32 reg) @@ -174,7 +144,7 @@ static u16 dc_map(u16 seg) { u8 reg;
- reg = crtce_read(EXTENDED_MODE_CONTROL);
- reg = stdvga_crtc_read(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_MODE_CONTROL); reg &= 0xf9; switch (seg) { case SEG_GRAPH:
@@ -191,7 +161,7 @@ static u16 dc_map(u16 seg) break; }
- crtce_write(EXTENDED_MODE_CONTROL,reg);
- stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_MODE_CONTROL,reg); return seg;
}
@@ -366,6 +336,10 @@ int geodevga_init(void) // Device should be at 00:01.1 SET_VGA(VgaBDF, pci_to_bdf(0, 1, 1));
- // unlock crtc so we can use Standard VGA IO port access functions
- stdvga_crtc_write(VGAREG_VGA_CRTC_ADDRESS, EXTENDED_REGISTER_LOCK
, CRTCE_UNLOCK);
- vp_setup(); dc_setup();
-- 1.7.11.rc2.5.g68f532f