xref: /plan9/sys/src/cmd/aux/vga/et4000hwgc.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1219b2ee8SDavid du Colombier #include <u.h>
2219b2ee8SDavid du Colombier #include <libc.h>
37dd7cddfSDavid du Colombier #include <bio.h>
4219b2ee8SDavid du Colombier 
5*9a747e4fSDavid du Colombier #include "pci.h"
6219b2ee8SDavid du Colombier #include "vga.h"
7219b2ee8SDavid du Colombier 
8219b2ee8SDavid du Colombier static void
init(Vga * vga,Ctlr * ctlr)9219b2ee8SDavid du Colombier init(Vga* vga, Ctlr* ctlr)
10219b2ee8SDavid du Colombier {
11219b2ee8SDavid du Colombier 	ctlr->flag |= Finit;
12219b2ee8SDavid du Colombier 
13219b2ee8SDavid du Colombier 	/*
14219b2ee8SDavid du Colombier 	 * Use of the hwgc requires
15219b2ee8SDavid du Colombier 	 *	a W32 chip,
16219b2ee8SDavid du Colombier 	 *	8-bits,
17219b2ee8SDavid du Colombier 	 *	not 2x8-bit mode.
18219b2ee8SDavid du Colombier 	 */
19219b2ee8SDavid du Colombier 	if(cflag)
20219b2ee8SDavid du Colombier 		return;
21219b2ee8SDavid du Colombier 	if(vga->ctlr == 0 || strncmp(vga->ctlr->name, "et4000-w32", 10))
22219b2ee8SDavid du Colombier 		cflag = 1;
23219b2ee8SDavid du Colombier 	if(vga->mode->z != 8 || (ctlr->flag & Upclk2x8))
24219b2ee8SDavid du Colombier 		cflag = 1;
25219b2ee8SDavid du Colombier }
26219b2ee8SDavid du Colombier 
27219b2ee8SDavid du Colombier Ctlr et4000hwgc = {
28219b2ee8SDavid du Colombier 	"et4000hwgc",			/* name */
29219b2ee8SDavid du Colombier 	0,				/* snarf */
30219b2ee8SDavid du Colombier 	0,				/* options */
31219b2ee8SDavid du Colombier 	init,				/* init */
32219b2ee8SDavid du Colombier 	0,				/* load */
33219b2ee8SDavid du Colombier 	0,				/* dump */
34219b2ee8SDavid du Colombier };
35