radeon: fixup buffer and cs bits
authorDave Airlie <airlied@linux.ie>
Thu, 18 Sep 2008 00:22:23 +0000 (10:22 +1000)
committerDave Airlie <airlied@linux.ie>
Thu, 18 Sep 2008 00:22:23 +0000 (10:22 +1000)
linux-core/radeon_buffer.c
shared-core/radeon_cs.c

index 5b2ba42..fe2aa6f 100644 (file)
@@ -407,9 +407,6 @@ int radeon_move(struct drm_buffer_object * bo,
        if (new_mem->mem_type == DRM_BO_MEM_VRAM) {
                if (radeon_move_vram(bo, evict, no_wait, new_mem))
                        goto fallback;
-       } else if (new_mem->mem_type == DRM_BO_MEM_LOCAL){ 
-               if (radeon_move_flip(bo, evict, no_wait, new_mem))
-                       goto fallback;
        } else {
                if (radeon_move_flip(bo, evict, no_wait, new_mem))
                        goto fallback;
index b0c4abe..a00ec21 100644 (file)
@@ -368,13 +368,14 @@ void r300_cs_id_emit(struct drm_device *dev, uint32_t *id)
        /* ISYNC_CNTL should not have CPSCRACTH bit set */
        *id = radeon_cs_id_get(dev_priv);
        /* emit id in SCRATCH6 */
-       BEGIN_RING(6);
+       BEGIN_RING(8);
        OUT_RING(CP_PACKET0(R300_CP_RESYNC_ADDR, 0));
        OUT_RING(6);
        OUT_RING(CP_PACKET0(R300_CP_RESYNC_DATA, 0));
        OUT_RING(*id);
        OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
        OUT_RING(R300_RB3D_DC_FINISH);
+       RADEON_WAIT_UNTIL_3D_IDLE();
        ADVANCE_RING(); 
 }