aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/fb
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2010-03-25 17:51:05 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2010-03-25 17:51:05 +0000
commitbb6ba5f6b97bf5fb11f2b7baa44580859db7380c (patch)
tree9da529a0298e9537b1f747b4524f3bd9b87ffe2e /sys/dev/fb
parent09fcdf114ee760c1b779e76990aee1cd03b98c11 (diff)
Notes
Diffstat (limited to 'sys/dev/fb')
-rw-r--r--sys/dev/fb/vesa.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/sys/dev/fb/vesa.c b/sys/dev/fb/vesa.c
index 0c1d5ddce239..e89ba4b39184 100644
--- a/sys/dev/fb/vesa.c
+++ b/sys/dev/fb/vesa.c
@@ -189,7 +189,9 @@ static int vesa_bios_load_palette2(int start, int colors, u_char *r, u_char *g,
#define STATE_ALL (STATE_HW | STATE_DATA | STATE_DAC | STATE_REG)
static ssize_t vesa_bios_state_buf_size(void);
static int vesa_bios_save_restore(int code, void *p, size_t size);
+#ifdef MODE_TABLE_BROKEN
static int vesa_bios_get_line_length(void);
+#endif
static int vesa_bios_set_line_length(int pixel, int *bytes, int *lines);
#if 0
static int vesa_bios_get_start(int *x, int *y);
@@ -558,6 +560,7 @@ vesa_bios_save_restore(int code, void *p, size_t size)
return (regs.R_AX != 0x004f);
}
+#ifdef MODE_TABLE_BROKEN
static int
vesa_bios_get_line_length(void)
{
@@ -574,6 +577,7 @@ vesa_bios_get_line_length(void)
return (regs.R_BX);
}
+#endif
static int
vesa_bios_set_line_length(int pixel, int *bytes, int *lines)
@@ -1213,7 +1217,6 @@ static int
vesa_set_mode(video_adapter_t *adp, int mode)
{
video_info_t info;
- int bpsl;
if (adp != vesa_adp)
return ((*prevvidsw->set_mode)(adp, mode));
@@ -1295,14 +1298,18 @@ vesa_set_mode(video_adapter_t *adp, int mode)
if ((info.vi_flags & V_INFO_GRAPHICS) != 0)
vesa_adp->va_line_width /= info.vi_planes;
+#ifdef MODE_TABLE_BROKEN
/* If VBE function returns bigger bytes per scan line, use it. */
- bpsl = vesa_bios_get_line_length();
- if (bpsl > vesa_adp->va_line_width) {
- vesa_adp->va_line_width = bpsl;
- info.vi_buffer_size = bpsl * info.vi_height;
- if ((info.vi_flags & V_INFO_GRAPHICS) != 0)
- info.vi_buffer_size *= info.vi_planes;
+ {
+ int bpsl = vesa_bios_get_line_length();
+ if (bpsl > vesa_adp->va_line_width) {
+ vesa_adp->va_line_width = bpsl;
+ info.vi_buffer_size = bpsl * info.vi_height;
+ if ((info.vi_flags & V_INFO_GRAPHICS) != 0)
+ info.vi_buffer_size *= info.vi_planes;
+ }
}
+#endif
if (info.vi_flags & V_INFO_LINEAR) {
#if VESA_DEBUG > 1