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)