summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authormacallan <macallan@NetBSD.org>2023-06-28 08:53:43 +0000
committermacallan <macallan@NetBSD.org>2023-06-28 08:53:43 +0000
commitb898bd1a735594a022f169642a8f6362b3fe61a5 (patch)
tree9a91f91ea49bb0c02a1c6baf603c9f48a8ebebe4 /sys
parent8cfd6a7de08154bb8b525e4c720a2f9b9d007217 (diff)
wait for the engine to go idle before issuing rectfill commands
we get occasional overlap with blit commands if we just wait for fifo slots needs further investigation, it is possible that not all writes to drawing engine registers are pipelined and of course we don't have docs
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/sbus/mgx.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/sbus/mgx.c b/sys/dev/sbus/mgx.c
index 7bfa3e8d778..2d4a10af308 100644
--- a/sys/dev/sbus/mgx.c
+++ b/sys/dev/sbus/mgx.c
@@ -1,4 +1,4 @@
-/* $NetBSD: mgx.c,v 1.21 2023/06/28 08:11:52 macallan Exp $ */
+/* $NetBSD: mgx.c,v 1.22 2023/06/28 08:53:43 macallan Exp $ */
/*-
* Copyright (c) 2014 Michael Lorenz
@@ -29,7 +29,7 @@
/* a console driver for the SSB 4096V-MGX graphics card */
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mgx.c,v 1.21 2023/06/28 08:11:52 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mgx.c,v 1.22 2023/06/28 08:53:43 macallan Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -666,7 +666,8 @@ mgx_rectfill(void *cookie, int x, int y, int wi, int he, long fg)
dec = sc->sc_dec;
dec |= (DEC_COMMAND_RECT << DEC_COMMAND_SHIFT) |
(DEC_START_DIMX << DEC_START_SHIFT);
- mgx_wait_fifo(sc, 5);
+ //mgx_wait_fifo(sc, 5);
+ mgx_wait_engine(sc);
mgx_write_1(sc, ATR_ROP, ROP_SRC);
mgx_write_4(sc, ATR_FG, col);
mgx_write_4(sc, ATR_DEC, dec);