Module Name: src
Committed By: macallan
Date: Tue Aug 31 03:08:23 UTC 2010
Modified Files:
src/sys/arch/sparc64/dev: gfb.c
Log Message:
remove shadow framebuffer support, use VCONS_DONT_READ instead
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/sparc64/dev/gfb.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/sparc64/dev/gfb.c
diff -u src/sys/arch/sparc64/dev/gfb.c:1.2 src/sys/arch/sparc64/dev/gfb.c:1.3
--- src/sys/arch/sparc64/dev/gfb.c:1.2 Thu Dec 31 05:08:05 2009
+++ src/sys/arch/sparc64/dev/gfb.c Tue Aug 31 03:08:23 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: gfb.c,v 1.2 2009/12/31 05:08:05 macallan Exp $ */
+/* $NetBSD: gfb.c,v 1.3 2010/08/31 03:08:23 macallan Exp $ */
/*
* Copyright (c) 2009 Michael Lorenz
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gfb.c,v 1.2 2009/12/31 05:08:05 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gfb.c,v 1.3 2010/08/31 03:08:23 macallan Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -66,7 +66,7 @@
int sc_width, sc_height, sc_depth, sc_stride, sc_fblen;
int sc_locked;
- void *sc_fbaddr, *sc_shadow;
+ void *sc_fbaddr;
struct vcons_screen sc_console_screen;
struct wsscreen_descr sc_defaultscreen_descr;
const struct wsscreen_descr *sc_screens[1];
@@ -158,7 +158,6 @@
return;
}
- sc->sc_shadow = kmem_alloc(sc->sc_fblen, KM_SLEEP);
sc->sc_locked = 0;
sc->sc_mode = WSDISPLAYIO_MODE_EMUL;
@@ -230,6 +229,27 @@
aa.accesscookie = &sc->vd;
config_found(sc->sc_dev, &aa, wsemuldisplaydevprint);
+
+#ifdef GFB_DEBUG
+ /*
+ * now dump a register range
+ * try 1, 2 and 4 since they're only 0x2000 each
+ */
+ bus_space_handle_t regh;
+
+ if (bus_space_map(sc->sc_memt, ma->ma_reg[3].ur_paddr,
+ 0x2000, BUS_SPACE_MAP_LINEAR, ®h) == 0) {
+ for (i = 0; i < 0x200; i += 32) {
+ printf("%04x", i);
+ for (j = 0; j < 32; j += 4) {
+ printf(" %08x", bus_space_read_4(sc->sc_memt,
+ regh, i + j));
+ }
+ printf("\n");
+ }
+ bus_space_unmap(sc->sc_memt, regh, 0x2000);
+ }
+#endif
}
static int
@@ -330,8 +350,8 @@
ri->ri_stride = sc->sc_stride;
ri->ri_flg = RI_CENTER | RI_FULLCLEAR;
- ri->ri_bits = sc->sc_shadow;
- ri->ri_hwbits = (char *)sc->sc_fbaddr;
+ ri->ri_bits = (char *)sc->sc_fbaddr;
+ scr->scr_flags |= VCONS_DONT_READ;
if (existing) {
ri->ri_flg |= RI_CLEAR;