diff options
Diffstat (limited to 'sys/arch/mac68k/dev/grf_iv.c')
-rw-r--r-- | sys/arch/mac68k/dev/grf_iv.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/sys/arch/mac68k/dev/grf_iv.c b/sys/arch/mac68k/dev/grf_iv.c index 8aceafea8b2..9cd06066807 100644 --- a/sys/arch/mac68k/dev/grf_iv.c +++ b/sys/arch/mac68k/dev/grf_iv.c @@ -1,4 +1,4 @@ -/* $OpenBSD: grf_iv.c,v 1.34 2006/01/09 20:51:48 miod Exp $ */ +/* $OpenBSD: grf_iv.c,v 1.35 2006/01/10 21:19:14 miod Exp $ */ /* $NetBSD: grf_iv.c,v 1.17 1997/02/20 00:23:27 scottr Exp $ */ /* @@ -64,6 +64,7 @@ #include <sys/param.h> #include <sys/device.h> #include <sys/systm.h> +#include <sys/malloc.h> #include <machine/autoconf.h> #include <machine/bus.h> @@ -202,7 +203,7 @@ macfb_obio_attach(struct device *parent, struct device *self, void *aux) struct macfb_softc *sc = (struct macfb_softc *)self; u_long base, length; u_int32_t vbase1, vbase2; - struct grfmode gm; + struct macfb_devconfig *dc; sc->card_id = 0; @@ -336,14 +337,19 @@ macfb_obio_attach(struct device *parent, struct device *self, void *aux) mac68k_vidphys < (sc->sc_basepa + length)) videoaddr = sc->sc_handle.base + sc->sc_fbofs; /* XXX big ol' hack */ - gm.psize = videobitdepth; - gm.width = videosize & 0xffff; - gm.height = (videosize >> 16) & 0xffff; - gm.rowbytes = videorowbytes; - gm.fbsize = gm.height * gm.rowbytes; - gm.fbbase = (caddr_t)sc->sc_handle.base; /* XXX yet another hack */ - gm.fboff = sc->sc_fbofs; + dc = malloc(sizeof(*dc), M_DEVBUF, M_WAITOK); + bzero(dc, sizeof(*dc)); + + dc->dc_vaddr = (vaddr_t)sc->sc_handle.base; /* XXX yet another hack */ + dc->dc_paddr = sc->sc_basepa; + dc->dc_offset = sc->sc_fbofs; + dc->dc_wid = videosize & 0xffff; + dc->dc_ht = (videosize >> 16) & 0xffff; + dc->dc_depth = videobitdepth; + dc->dc_rowbytes = videorowbytes; + dc->dc_size = dc->dc_ht * dc->dc_rowbytes; + dc->nscreens = 0; /* Perform common video attachment. */ - macfb_attach_common(sc, &gm); + macfb_attach_common(sc, dc); } |