diff options
author | Tilman Sauerbeck <tilman@code-monkey.de> | 2006-08-25 22:40:17 +0200 |
---|---|---|
committer | Tilman Sauerbeck <tilman@code-monkey.de> | 2006-08-25 22:40:17 +0200 |
commit | 693f165e2c6c431e6c61c835781883c2bcef5876 (patch) | |
tree | abcdc04f327a20c43f19643ecb01fc109d9fac1c /src/mga_exa.c | |
parent | 7fbd85b3621f5368ebce178e5e55b0cbd5a80733 (diff) |
Fixed corruption on copy, by copying kdrive's waitmarker code.
Diffstat (limited to 'src/mga_exa.c')
-rw-r--r-- | src/mga_exa.c | 9 |
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 |