summaryrefslogtreecommitdiff
path: root/sys/arch/sparc64
diff options
context:
space:
mode:
authorJason Wright <jason@cvs.openbsd.org>2002-07-29 06:21:46 +0000
committerJason Wright <jason@cvs.openbsd.org>2002-07-29 06:21:46 +0000
commit3ff00de11210d1677661ac08374576efb7929d81 (patch)
tree59973af1f383a0fadc47532cd839a702ca01c6f9 /sys/arch/sparc64
parent13100cce8e39a0fdc161b78d162cf5b159ec0e82 (diff)
use ROP_OLD for VSCROLL, with this, vertical scroll (copyrows) works (and it's -fast-)
Diffstat (limited to 'sys/arch/sparc64')
-rw-r--r--sys/arch/sparc64/dev/creator.c10
-rw-r--r--sys/arch/sparc64/dev/creatorreg.h3
2 files changed, 7 insertions, 6 deletions
diff --git a/sys/arch/sparc64/dev/creator.c b/sys/arch/sparc64/dev/creator.c
index a7c8109b1b8..71074217fde 100644
--- a/sys/arch/sparc64/dev/creator.c
+++ b/sys/arch/sparc64/dev/creator.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: creator.c,v 1.18 2002/07/29 05:53:12 jason Exp $ */
+/* $OpenBSD: creator.c,v 1.19 2002/07/29 06:21:45 jason Exp $ */
/*
* Copyright (c) 2002 Jason L. Wright (jason@thought.net)
@@ -148,9 +148,7 @@ creator_attach(struct creator_softc *sc)
sc->sc_rasops.ri_hw = sc;
sc->sc_rasops.ri_ops.eraserows = creator_ras_eraserows;
sc->sc_rasops.ri_ops.erasecols = creator_ras_erasecols;
-#if 0
sc->sc_rasops.ri_ops.copyrows = creator_ras_copyrows;
-#endif
creator_ras_init(sc);
creator_stdscreen.nrows = sc->sc_rasops.ri_rows;
@@ -451,7 +449,8 @@ void
creator_ras_fill(sc)
struct creator_softc *sc;
{
- creator_ras_fifo_wait(sc, 1);
+ creator_ras_fifo_wait(sc, 2);
+ FBC_WRITE(sc, FFB_FBC_ROP, FBC_ROP_NEW);
FBC_WRITE(sc, FFB_FBC_DRAWOP, FBC_DRAWOP_RECTANGLE);
creator_ras_wait(sc);
}
@@ -484,7 +483,8 @@ creator_ras_copyrows(cookie, src, dst, n)
src *= ri->ri_font->fontheight;
dst *= ri->ri_font->fontheight;
- creator_ras_fifo_wait(sc, 7);
+ creator_ras_fifo_wait(sc, 8);
+ FBC_WRITE(sc, FFB_FBC_ROP, FBC_ROP_OLD | (FBC_ROP_OLD << 8));
FBC_WRITE(sc, FFB_FBC_DRAWOP, FBC_DRAWOP_VSCROLL);
FBC_WRITE(sc, FFB_FBC_BY, ri->ri_yorigin + src);
FBC_WRITE(sc, FFB_FBC_BX, ri->ri_xorigin);
diff --git a/sys/arch/sparc64/dev/creatorreg.h b/sys/arch/sparc64/dev/creatorreg.h
index 1b90199419b..77003eb8692 100644
--- a/sys/arch/sparc64/dev/creatorreg.h
+++ b/sys/arch/sparc64/dev/creatorreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: creatorreg.h,v 1.4 2002/07/28 17:07:33 jason Exp $ */
+/* $OpenBSD: creatorreg.h,v 1.5 2002/07/29 06:21:45 jason Exp $ */
/*
* Copyright (c) 2002 Jason L. Wright (jason@thought.net)
@@ -198,6 +198,7 @@
#define FBC_PPC_CS_CONST 0x00000003 /* color source ??? */
#define FBC_ROP_NEW 0x83
+#define FBC_ROP_OLD 0x85
#define FBC_UCSR_FIFO_MASK 0x00000fff
#define FBC_UCSR_FB_BUSY 0x01000000