drm/radeon: check the right ring in radeon_evict_flags()
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 3 Dec 2014 05:03:49 +0000 (00:03 -0500)
committerZefan Li <lizefan@huawei.com>
Tue, 14 Apr 2015 09:33:45 +0000 (17:33 +0800)
commit 5e5c21cac1001089007260c48b0c89ebaace0e71 upstream.

Check the that ring we are using for copies is functional
rather than the GFX ring.  On newer asics we use the DMA
ring for bo moves.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Zefan Li <lizefan@huawei.com>
drivers/gpu/drm/radeon/radeon_ttm.c

index 49b55edc55b6a894cf2a8d60de9d7f732ac5d03d..15042d0ca035e173621c70f5c84bd5146d0dbb54 100644 (file)
@@ -188,7 +188,7 @@ static void radeon_evict_flags(struct ttm_buffer_object *bo,
        rbo = container_of(bo, struct radeon_bo, tbo);
        switch (bo->mem.mem_type) {
        case TTM_PL_VRAM:
-               if (rbo->rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready == false)
+               if (rbo->rdev->ring[radeon_copy_ring_index(rbo->rdev)].ready == false)
                        radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_CPU);
                else
                        radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_GTT);