diff options
author | Todd T. Fries <todd@cvs.openbsd.org> | 1997-09-01 03:56:46 +0000 |
---|---|---|
committer | Todd T. Fries <todd@cvs.openbsd.org> | 1997-09-01 03:56:46 +0000 |
commit | 428358f6d3650f3da6dc73402e0dbed2edbe1f42 (patch) | |
tree | 116383f78c88681db4f10eaebef8721cc565a079 /sys/arch | |
parent | c70eb73f84e00b41ce86994c2761c3e28b7f1fbd (diff) |
Thanks go to Jason Downs <downsj@openbsd.org> who virtually handed me this
patch.
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/sparc/dev/cgthree.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/arch/sparc/dev/cgthree.c b/sys/arch/sparc/dev/cgthree.c index b978af5fde4..c9964f1b766 100644 --- a/sys/arch/sparc/dev/cgthree.c +++ b/sys/arch/sparc/dev/cgthree.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cgthree.c,v 1.6 1997/08/08 08:24:53 downsj Exp $ */ +/* $OpenBSD: cgthree.c,v 1.7 1997/09/01 03:56:45 todd Exp $ */ /* $NetBSD: cgthree.c,v 1.33 1997/05/24 20:16:11 pk Exp $ */ /* @@ -85,6 +85,7 @@ struct cgthree_softc { struct rom_reg sc_phys; /* phys address description */ volatile struct fbcontrol *sc_fbc; /* Brooktree registers */ int sc_bustype; /* type of bus we live on */ + int sc_isrdi; /* is an RDI */ union bt_cmap sc_cmap; /* Brooktree color map */ }; @@ -147,7 +148,8 @@ cgthreematch(parent, vcf, aux) */ cf->cf_flags &= FB_USERMASK; - if (strcmp(cf->cf_driver->cd_name, ra->ra_name)) + if (strcmp(cf->cf_driver->cd_name, ra->ra_name) && + strcmp("cgRDI",ra->ra_name)) return (0); if (ca->ca_bustype == BUS_SBUS) return(1); @@ -201,7 +203,11 @@ cgthreeattach(parent, self, args) sc->sc_fb.fb_type.fb_depth = 8; fb_setsize(&sc->sc_fb, sc->sc_fb.fb_type.fb_depth, - 1152, 900, node, ca->ca_bustype); + 1152, 900, node, ca->ca_bustype); + if(!strcmp(ca->ca_ra.ra_name, "cgRDI")) { + sc->sc_isrdi = 1; + nam = "cgRDI"; + } ramsize = roundup(sc->sc_fb.fb_type.fb_height * sc->sc_fb.fb_linebytes, NBPG); @@ -227,7 +233,7 @@ cgthreeattach(parent, self, args) sizeof(struct fbcontrol)); /* Transfer video magic to board, if it's not running */ - if ((sc->sc_fbc->fbc_ctrl & FBC_TIMING) == 0) + if (!sc->sc_isrdi && (sc->sc_fbc->fbc_ctrl & FBC_TIMING) == 0) for (i = 0; i < sizeof(cg3_videoctrl)/sizeof(cg3_videoctrl[0]); i++) { volatile struct fbcontrol *fbc = sc->sc_fbc; |