diff options
author | yokota <yokota@FreeBSD.org> | 1999-08-24 04:26:54 +0000 |
---|---|---|
committer | yokota <yokota@FreeBSD.org> | 1999-08-24 04:26:54 +0000 |
commit | 06ec3ed8b8c82cc10eda433e7d4a96bfe3146fd2 (patch) | |
tree | d7ff0aaeae937d47c9d3a7c6fdf501af66352def /sys/dev/fb | |
parent | 6d0c96fd31d369c1cec5b0f8d22c10b4bce112f1 (diff) | |
download | FreeBSD-src-06ec3ed8b8c82cc10eda433e7d4a96bfe3146fd2.zip FreeBSD-src-06ec3ed8b8c82cc10eda433e7d4a96bfe3146fd2.tar.gz |
Correct the mode information for the VGA mode X.
- This mode uses four planes rather than one.
- "# of bytes in a scan line" = "# of pixels in the line"/2
Diffstat (limited to 'sys/dev/fb')
-rw-r--r-- | sys/dev/fb/vga.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/dev/fb/vga.c b/sys/dev/fb/vga.c index 39b0a0b..d6cddaa 100644 --- a/sys/dev/fb/vga.c +++ b/sys/dev/fb/vga.c @@ -26,7 +26,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: vga.c,v 1.1 1999/06/22 14:13:24 yokota Exp $ + * $Id: vga.c,v 1.2 1999/06/26 10:52:54 peter Exp $ */ #include "vga.h" @@ -412,9 +412,9 @@ static video_info_t bios_vmode[] = { { M_VGA_CG320, V_INFO_COLOR | V_INFO_GRAPHICS, 320, 200, 8, 8, 8, 1, GRAPHICS_BUF_BASE, GRAPHICS_BUF_SIZE, GRAPHICS_BUF_SIZE, 0, 0, V_INFO_MM_PACKED, 1 }, - { M_VGA_MODEX, V_INFO_COLOR | V_INFO_GRAPHICS, 320, 240, 8, 8, 8, 1, + { M_VGA_MODEX, V_INFO_COLOR | V_INFO_GRAPHICS, 320, 240, 8, 8, 8, 4, GRAPHICS_BUF_BASE, GRAPHICS_BUF_SIZE, GRAPHICS_BUF_SIZE, 0, 0, - V_INFO_MM_PACKED, 1 }, + V_INFO_MM_VGAX, 1 }, #endif /* VGA_NO_MODE_CHANGE */ { EOT }, @@ -850,7 +850,9 @@ update_adapter_info(video_adapter_t *adp, video_info_t *info) /* XXX */ adp->va_buffer = info->vi_buffer; adp->va_buffer_size = info->vi_buffer_size; - if (info->vi_flags & V_INFO_GRAPHICS) { + if (info->vi_mem_model == V_INFO_MM_VGAX) { + adp->va_line_width = info->vi_width/2; + } else if (info->vi_flags & V_INFO_GRAPHICS) { switch (info->vi_depth/info->vi_planes) { case 1: adp->va_line_width = info->vi_width/8; |