diff options
author | yokota <yokota@FreeBSD.org> | 1999-02-05 12:58:40 +0000 |
---|---|---|
committer | yokota <yokota@FreeBSD.org> | 1999-02-05 12:58:40 +0000 |
commit | a457661f60731bf97aec9b5bcf2b8fe7d89b25b6 (patch) | |
tree | 93e4697a5510a0607c785bd196e0bef80f14feac /sys/isa/vga_isa.c | |
parent | 481c70e8c63e3fbab220e098337004d6ce732010 (diff) | |
download | FreeBSD-src-a457661f60731bf97aec9b5bcf2b8fe7d89b25b6.zip FreeBSD-src-a457661f60731bf97aec9b5bcf2b8fe7d89b25b6.tar.gz |
Oops, the last commit contained a wrong patch. This is the correct one.
Diffstat (limited to 'sys/isa/vga_isa.c')
-rw-r--r-- | sys/isa/vga_isa.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/sys/isa/vga_isa.c b/sys/isa/vga_isa.c index 33866b8..49baedb 100644 --- a/sys/isa/vga_isa.c +++ b/sys/isa/vga_isa.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_isa.c,v 1.1 1999/01/23 16:53:30 dfr Exp $ + * $Id: vga_isa.c,v 1.2 1999/02/05 11:52:08 yokota Exp $ */ #include "vga.h" @@ -851,10 +851,25 @@ update_adapter_info(video_adapter_t *adp, video_info_t *info) adp->va_buffer = BIOS_PADDRTOVADDR(info->vi_buffer); adp->va_buffer_size = info->vi_buffer_size; } - if (info->vi_flags & V_INFO_GRAPHICS) - adp->va_line_width = info->vi_width/8; - 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; + break; + case 2: + adp->va_line_width = info->vi_width/4; + break; + case 4: + adp->va_line_width = info->vi_width/2; + break; + case 8: + default: /* shouldn't happen */ + adp->va_line_width = info->vi_width; + break; + } + } else { adp->va_line_width = info->vi_width; + } bcopy(info, &adp->va_info, sizeof(adp->va_info)); } |