summaryrefslogtreecommitdiff
path: root/src/radeon_driver.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-02-19 10:20:28 -0500
committerAlex Deucher <alexdeucher@gmail.com>2009-02-19 10:20:28 -0500
commit42492c70c481c88911337eefb97ba9d030adf7b6 (patch)
tree500325fe63f2f9e713a933a7f703eb560105e670 /src/radeon_driver.c
parent61311b1de019c5a2344928a47347a966c229b08a (diff)
R6xx/R7xx: wait for MC idle when changing the MC
should fix bug 19984
Diffstat (limited to 'src/radeon_driver.c')
-rw-r--r--src/radeon_driver.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 32cb307e..74245777 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;