summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1997-04-15 15:22:36 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1997-04-15 15:22:36 +0000
commitb33070a313b3792c87d5168e554486584df30b3b (patch)
treebfdfbd567bf0a41ba0caa057a1d1e771c6cb58d2 /sys
parentcb0e27195f7685f010628edb287b9993fc42e85a (diff)
support more S3 chipsets. done by comparing against SuperCode;
wisner@gryphon.com
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/i386/isa/pcvt/pcvt_ext.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/sys/arch/i386/isa/pcvt/pcvt_ext.c b/sys/arch/i386/isa/pcvt/pcvt_ext.c
index 52356338a84..e745060f3ae 100644
--- a/sys/arch/i386/isa/pcvt/pcvt_ext.c
+++ b/sys/arch/i386/isa/pcvt/pcvt_ext.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pcvt_ext.c,v 1.8 1996/11/07 11:19:48 niklas Exp $ */
+/* $OpenBSD: pcvt_ext.c,v 1.9 1997/04/15 15:22:35 deraadt Exp $ */
/*
* Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch.
@@ -431,7 +431,7 @@ vga_chipset(void)
}
break;
- case 0xA0:
+ case 0xa0:
outb(addr_6845, 0x38);
outb(addr_6845+1, old1byte);
return VGA_S3_80x;
@@ -443,6 +443,16 @@ vga_chipset(void)
can_do_132col = 1;
return VGA_S3_928;
+ case 0xc0:
+ outb(addr_6845, 0x38);
+ outb(addr_6845+1, old1byte);
+ return VGA_S3_864;
+
+ case 0xd0:
+ outb(addr_6845, 0x38);
+ outb(addr_6845+1, old1byte);
+ return VGA_S3_964;
+
case 0xe0:
outb(addr_6845, 0x2e);
byte = inb(addr_6845+1);
@@ -458,13 +468,8 @@ vga_chipset(void)
outb(addr_6845, 0x38);
outb(addr_6845+1, old1byte);
- /*
- * XXX this may be wrong
- * from vgadoc4b.zip, the
- * value may be 8, but mine
- * reads 3, so ...
- */
- if ((byte & 0x0f) == 0x03)
+
+ if ((byte & 0x40) == 0x40)
return VGA_S3_765;
else
return VGA_S3_764;
@@ -476,7 +481,7 @@ vga_chipset(void)
outb(addr_6845, 0x38);
outb(addr_6845+1, old1byte);
return VGA_S3_868;
- case 0xB0:
+ case 0xf0:
outb(addr_6845, 0x38);
outb(addr_6845+1, old1byte);
return VGA_S3_968;