summaryrefslogtreecommitdiff
path: root/src/mga_exa.c
diff options
context:
space:
mode:
authorTilman Sauerbeck <tilman@code-monkey.de>2006-08-25 22:40:17 +0200
committerTilman Sauerbeck <tilman@code-monkey.de>2006-08-25 22:40:17 +0200
commit693f165e2c6c431e6c61c835781883c2bcef5876 (patch)
treeabcdc04f327a20c43f19643ecb01fc109d9fac1c /src/mga_exa.c
parent7fbd85b3621f5368ebce178e5e55b0cbd5a80733 (diff)
Fixed corruption on copy, by copying kdrive's waitmarker code.
Diffstat (limited to 'src/mga_exa.c')
-rw-r--r--src/mga_exa.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mga_exa.c b/src/mga_exa.c
index d89e42a..20534dc 100644
--- a/src/mga_exa.c
+++ b/src/mga_exa.c
@@ -720,9 +720,14 @@ static void
mgaWaitMarker(ScreenPtr pScreen, int marker)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ MGAPtr pMga = pScrn->driverPrivate;
+
+ WAITFIFO(1);
+
+ OUTREG(MGAREG_CACHEFLUSH, 0);
- /* FIXME: is this correct? */
- CHECK_DMA_QUIESCENT(MGAPTR(pScrn), pScrn);
+ /* wait until the "drawing engine busy" bit is unset */
+ while (INREG (MGAREG_Status) & 0x10000);
}
Bool