aboutsummaryrefslogtreecommitdiffstats
path: root/vgasrc/clext.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2013-09-10 10:41:33 -0400
committerKevin O'Connor <kevin@koconnor.net>2013-09-18 20:48:33 -0400
commit68f56aa6e9d25f0e95c61dfe89b83ccc55383472 (patch)
treed3c97f0ecf25adcac800af62054083eab694bede /vgasrc/clext.c
parent53663503abb7fd4cd2e847ec45a0a4594da2ae43 (diff)
downloadseabios-68f56aa6e9d25f0e95c61dfe89b83ccc55383472.tar.gz
vgabios: Rename stdvga_bpp_factor to stdvga_vram_ratio.
Invert the values returned by stdvga_bpp_factor and rename it. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'vgasrc/clext.c')
-rw-r--r--vgasrc/clext.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/vgasrc/clext.c b/vgasrc/clext.c
index 012e2b10..8377da13 100644
--- a/vgasrc/clext.c
+++ b/vgasrc/clext.c
@@ -328,17 +328,16 @@ clext_get_linelength(struct vgamode_s *vmode_g)
u16 crtc_addr = stdvga_get_crtc();
u8 reg13 = stdvga_crtc_read(crtc_addr, 0x13);
u8 reg1b = stdvga_crtc_read(crtc_addr, 0x1b);
- return (((reg1b & 0x10) << 4) + reg13) * stdvga_bpp_factor(vmode_g) * 2;
+ return (((reg1b & 0x10) << 4) + reg13) * 8 / stdvga_vram_ratio(vmode_g);
}
int
clext_set_linelength(struct vgamode_s *vmode_g, int val)
{
u16 crtc_addr = stdvga_get_crtc();
- int factor = stdvga_bpp_factor(vmode_g) * 2;
- int new_line_offset = DIV_ROUND_UP(val, factor);
- stdvga_crtc_write(crtc_addr, 0x13, new_line_offset);
- stdvga_crtc_mask(crtc_addr, 0x1b, 0x10, (new_line_offset & 0x100) >> 4);
+ val = DIV_ROUND_UP(val * stdvga_vram_ratio(vmode_g), 8);
+ stdvga_crtc_write(crtc_addr, 0x13, val);
+ stdvga_crtc_mask(crtc_addr, 0x1b, 0x10, (val & 0x100) >> 4);
return 0;
}
@@ -352,14 +351,14 @@ clext_get_displaystart(struct vgamode_s *vmode_g)
u8 b4 = stdvga_crtc_read(crtc_addr, 0x1d);
int val = (b1 | (b2<<8) | ((b3 & 0x01) << 16) | ((b3 & 0x0c) << 15)
| ((b4 & 0x80) << 12));
- return val * stdvga_bpp_factor(vmode_g);
+ return val * 4 / stdvga_vram_ratio(vmode_g);
}
int
clext_set_displaystart(struct vgamode_s *vmode_g, int val)
{
u16 crtc_addr = stdvga_get_crtc();
- val /= stdvga_bpp_factor(vmode_g);
+ val = val * stdvga_vram_ratio(vmode_g) / 4;
stdvga_crtc_write(crtc_addr, 0x0d, val);
stdvga_crtc_write(crtc_addr, 0x0c, val >> 8);
stdvga_crtc_mask(crtc_addr, 0x1d, 0x80, (val & 0x0800) >> 4);