summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel@tungstengraphics.com>2007-11-05 10:30:23 +0100
committerMichel Dänzer <michel@tungstengraphics.com>2007-11-05 10:30:23 +0100
commitd41d73f5f9d8baee7137e94da2c7852ea0412180 (patch)
tree9fcf7b4a4debeb80ac5fddfdaf4b6d372b6c2d50
parentaaafc6a8f33d4736c37c43d3fd5e43085a2590fb (diff)
Revert "radeon: Reinstate sync in radeon_crtc_show/hide_cursor."
This reverts commit 0241cac643fa1c08a45ea44f5c670b290e760ad8. Taking the DRI lock in paths called from the SIGIO handler isn't safe. For example, the SIGIO handler may be called while the lock is held by an AIGLX context, resulting in deadlock. See e.g. https://bugs.freedesktop.org/show_bug.cgi?id=13005 .
-rw-r--r--src/radeon_cursor.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index 3e60d23..f19f2bc 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -98,22 +98,12 @@ radeon_crtc_show_cursor (xf86CrtcPtr crtc)
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
@@ -125,20 +115,12 @@ radeon_crtc_hide_cursor (xf86CrtcPtr crtc)
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