xf86-video-ati: Branch 'master'

Michel Daenzer daenzer at kemper.freedesktop.org
Fri Sep 7 15:24:03 PDT 2007


 src/radeon_cursor.c |   20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

New commits:
diff-tree 0241cac643fa1c08a45ea44f5c670b290e760ad8 (from 49933e2f7d590811f2bc8c0d51a09f3b7f14845e)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Sat Sep 8 00:22:40 2007 +0200

    radeon: Reinstate sync in radeon_crtc_show/hide_cursor.
    
    Make sure the DRI lock is held though, as these can be called asynchronously.
    
    Fixes https://bugs.freedesktop.org/show_bug.cgi?id=12245 .

diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index f19f2bc..3e60d23 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -98,12 +98,22 @@ radeon_crtc_show_cursor (xf86CrtcPtr crt
     RADEONInfoPtr      info       = RADEONPTR(pScrn);
     unsigned char     *RADEONMMIO = info->MMIO;
 
+#ifdef XF86DRI
+    if (info->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0);
+#endif
+
+    RADEON_SYNC(info, pScrn);
+
     if (crtc_id == 0) 
 	OUTREGP(RADEON_CRTC_GEN_CNTL, RADEON_CRTC_CUR_EN | 2 << 20, 
 		~(RADEON_CRTC_CUR_EN | RADEON_CRTC_CUR_MODE_MASK));
     else if (crtc_id == 1)
 	OUTREGP(RADEON_CRTC2_GEN_CNTL, RADEON_CRTC2_CUR_EN | 2 << 20,
 		~(RADEON_CRTC2_CUR_EN | RADEON_CRTC2_CUR_MODE_MASK));
+
+#ifdef XF86DRI
+    if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen);
+#endif
 }
 
 void
@@ -115,12 +125,20 @@ radeon_crtc_hide_cursor (xf86CrtcPtr crt
     RADEONInfoPtr      info       = RADEONPTR(pScrn);
     unsigned char     *RADEONMMIO = info->MMIO;
 
+#ifdef XF86DRI
+    if (info->CPStarted && pScrn->pScreen) DRILock(pScrn->pScreen, 0);
+#endif
+
+    RADEON_SYNC(info, pScrn);
+
     if (crtc_id == 0)
 	OUTREGP(RADEON_CRTC_GEN_CNTL, 0, ~RADEON_CRTC_CUR_EN);
     else if (crtc_id == 1)
 	OUTREGP(RADEON_CRTC2_GEN_CNTL, 0, ~RADEON_CRTC2_CUR_EN);
 
-
+#ifdef XF86DRI
+    if (info->CPStarted && pScrn->pScreen) DRIUnlock(pScrn->pScreen);
+#endif
 }
 
 void


More information about the xorg-commit mailing list