xf86-video-ati: Branch 'master'

Alex Deucher agd5f at kemper.freedesktop.org
Thu Feb 19 07:21:39 PST 2009


 src/radeon_driver.c |    7 +++++--
 src/radeon_reg.h    |    2 ++
 2 files changed, 7 insertions(+), 2 deletions(-)

New commits:
commit 42492c70c481c88911337eefb97ba9d030adf7b6
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Thu Feb 19 10:20:28 2009 -0500

    R6xx/R7xx: wait for MC idle when changing the MC
    
    should fix bug 19984

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 32cb307..7424577 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -635,10 +635,13 @@ void RADEONOUTMC(ScrnInfoPtr pScrn, int addr, uint32_t data)
 static Bool avivo_get_mc_idle(ScrnInfoPtr pScrn)
 {
     RADEONInfoPtr  info       = RADEONPTR(pScrn);
+    unsigned char *RADEONMMIO = info->MMIO;
 
     if (info->ChipFamily >= CHIP_FAMILY_R600) {
-	/* no idea where this is on r600 yet */
-	return TRUE;
+	if (INREG(R600_SRBM_STATUS) & 0x3f00)
+	    return FALSE;
+	else
+	    return TRUE;
     } else if (info->ChipFamily == CHIP_FAMILY_RV515) {
 	if (INMC(pScrn, RV515_MC_STATUS) & RV515_MC_STATUS_IDLE)
 	    return TRUE;
diff --git a/src/radeon_reg.h b/src/radeon_reg.h
index 7b8840b..c4177cc 100644
--- a/src/radeon_reg.h
+++ b/src/radeon_reg.h
@@ -3482,6 +3482,8 @@
 #       define R600_CHANSIZE                           (1 << 7)
 #       define R600_CHANSIZE_OVERRIDE                  (1 << 10)
 
+#define R600_SRBM_STATUS			       0x0e50
+
 #define AVIVO_HDP_FB_LOCATION 0x134
 
 #define AVIVO_VGA_RENDER_CONTROL				0x0300


More information about the xorg-commit mailing list