Module Name: src Committed By: macallan Date: Thu Nov 28 12:42:39 UTC 2024
Modified Files: src/sys/arch/hppa/dev: summitfb.c Log Message: reshuffle unknown register inits, move the ones identified To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/hppa/dev/summitfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/hppa/dev/summitfb.c diff -u src/sys/arch/hppa/dev/summitfb.c:1.9 src/sys/arch/hppa/dev/summitfb.c:1.10 --- src/sys/arch/hppa/dev/summitfb.c:1.9 Wed Nov 27 14:09:10 2024 +++ src/sys/arch/hppa/dev/summitfb.c Thu Nov 28 12:42:39 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: summitfb.c,v 1.9 2024/11/27 14:09:10 riastradh Exp $ */ +/* $NetBSD: summitfb.c,v 1.10 2024/11/28 12:42:39 macallan Exp $ */ /* $OpenBSD: sti_pci.c,v 1.7 2009/02/06 22:51:04 miod Exp $ */ @@ -21,12 +21,13 @@ */ /* - * a native driver for HP Visualize EG PCI graphics cards + * a native driver for HP Visualize FX graphics cards, so far tested only on + * my FX4 * STI portions are from Miodrag Vallat's sti_pci.c */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: summitfb.c,v 1.9 2024/11/27 14:09:10 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: summitfb.c,v 1.10 2024/11/28 12:42:39 macallan Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -293,7 +294,7 @@ summitfb_attach(device_t parent, device_ glyphcache_init(&sc->sc_gc, sc->sc_height + 5, sc->sc_scr.fbheight - sc->sc_height - 5, - sc->sc_scr.fbwidth, + sc->sc_width/*sc->sc_scr.fbwidth*/, ri->ri_font->fontwidth, ri->ri_font->fontheight, defattr); @@ -654,24 +655,28 @@ summitfb_setup(struct summitfb_softc *sc #if 1 summitfb_write4(sc, 0xb08044, 0x1b); summitfb_write4(sc, 0xb08048, 0x1b); - summitfb_write4(sc, 0x920860, 0xe4); - summitfb_write4(sc, 0xa00818, 0); - summitfb_write4(sc, 0xa00404, 0); + summitfb_write4(sc, 0x921110, 0); - summitfb_write4(sc, 0x9211d8, 0); - summitfb_write4(sc, 0xa0086c, 0); summitfb_write4(sc, 0x921114, 0); - summitfb_write4(sc, 0xac1050, 0); - summitfb_write4(sc, 0xa00858, 0xb0); /* 0 on fx4 */ - summitfb_write4(sc, 0xa00850, 0); /* fx4 */ + summitfb_write4(sc, 0x9211d8, 0); + + summitfb_write4(sc, 0xa00404, 0); + summitfb_write4(sc, 0xa00818, 0); summitfb_write4(sc, 0xa0081c, 0); /* fx4 */ + summitfb_write4(sc, 0xa00850, 0); /* fx4 */ + summitfb_write4(sc, 0x920860, 0xe4); + summitfb_write4(sc, 0xa0086c, 0); #endif summitfb_wait(sc); + summitfb_write4(sc, VISFX_APERTURE_ACCESS, VISFX_DEPTH_8); summitfb_write4(sc, VISFX_PIXEL_MASK, 0xffffffff); summitfb_write4(sc, VISFX_PLANE_MASK, 0xffffffff); summitfb_write_mode(sc, VISFX_WRITE_MODE_PLAIN); summitfb_write4(sc, VISFX_VRAM_READ_MODE, VISFX_READ_MODE_COPY); + summitfb_write4(sc, VISFX_CLIP_TL, 0); + summitfb_write4(sc, VISFX_CLIP_WH, + ((sc->sc_scr.fbwidth + 1) << 16) | (sc->sc_scr.fbheight + 1)); summitfb_setup_fb(sc); } @@ -734,7 +739,7 @@ summitfb_ioctl(void *v, void *vs, u_long if(new_mode == WSDISPLAYIO_MODE_EMUL) { summitfb_setup(sc); summitfb_restore_palette(sc); - //glyphcache_wipe(&sc->sc_gc); + glyphcache_wipe(&sc->sc_gc); summitfb_rectfill(sc, 0, 0, sc->sc_width, sc->sc_height, ms->scr_ri.ri_devcmap[ (ms->scr_defattr >> 16) & 0xff]); @@ -1052,6 +1057,7 @@ summitfb_putchar(void *cookie, int row, if (!CHAR_IN_FONT(c, font)) return; + /* XXX as long as we use putchar() to draw the cursor */ #if 0 if (row == ri->ri_crow && col == ri->ri_ccol) { ri->ri_flg &= ~RI_CURSOR; @@ -1150,6 +1156,7 @@ summitfb_putchar_aa(void *cookie, int ro return; summitfb_setup_fb(sc); + summitfb_wait(sc); sc->sc_putchar(cookie, row, col, c, attr); if (rv == GC_ADD)