aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_ttm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_ttm.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_ttm.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index c421e77ace71..f493c6403af5 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -226,7 +226,7 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
226 int r, i; 226 int r, i;
227 227
228 rdev = radeon_get_rdev(bo->bdev); 228 rdev = radeon_get_rdev(bo->bdev);
229 r = radeon_fence_create(rdev, &fence, rdev->copy_ring); 229 r = radeon_fence_create(rdev, &fence, radeon_copy_ring_index(rdev));
230 if (unlikely(r)) { 230 if (unlikely(r)) {
231 return r; 231 return r;
232 } 232 }
@@ -255,7 +255,7 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
255 DRM_ERROR("Unknown placement %d\n", old_mem->mem_type); 255 DRM_ERROR("Unknown placement %d\n", old_mem->mem_type);
256 return -EINVAL; 256 return -EINVAL;
257 } 257 }
258 if (!rdev->ring[rdev->copy_ring].ready) { 258 if (!rdev->ring[radeon_copy_ring_index(rdev)].ready) {
259 DRM_ERROR("Trying to move memory with ring turned off.\n"); 259 DRM_ERROR("Trying to move memory with ring turned off.\n");
260 return -EINVAL; 260 return -EINVAL;
261 } 261 }
@@ -266,7 +266,7 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
266 if (rdev->family >= CHIP_R600) { 266 if (rdev->family >= CHIP_R600) {
267 for (i = 0; i < RADEON_NUM_RINGS; ++i) { 267 for (i = 0; i < RADEON_NUM_RINGS; ++i) {
268 /* no need to sync to our own or unused rings */ 268 /* no need to sync to our own or unused rings */
269 if (i == rdev->copy_ring || !rdev->ring[i].ready) 269 if (i == radeon_copy_ring_index(rdev) || !rdev->ring[i].ready)
270 continue; 270 continue;
271 271
272 if (!fence->semaphore) { 272 if (!fence->semaphore) {
@@ -283,12 +283,12 @@ static int radeon_move_blit(struct ttm_buffer_object *bo,
283 radeon_semaphore_emit_signal(rdev, i, fence->semaphore); 283 radeon_semaphore_emit_signal(rdev, i, fence->semaphore);
284 radeon_ring_unlock_commit(rdev, &rdev->ring[i]); 284 radeon_ring_unlock_commit(rdev, &rdev->ring[i]);
285 285
286 r = radeon_ring_lock(rdev, &rdev->ring[rdev->copy_ring], 3); 286 r = radeon_ring_lock(rdev, &rdev->ring[radeon_copy_ring_index(rdev)], 3);
287 /* FIXME: handle ring lock error */ 287 /* FIXME: handle ring lock error */
288 if (r) 288 if (r)
289 continue; 289 continue;
290 radeon_semaphore_emit_wait(rdev, rdev->copy_ring, fence->semaphore); 290 radeon_semaphore_emit_wait(rdev, radeon_copy_ring_index(rdev), fence->semaphore);
291 radeon_ring_unlock_commit(rdev, &rdev->ring[rdev->copy_ring]); 291 radeon_ring_unlock_commit(rdev, &rdev->ring[radeon_copy_ring_index(rdev)]);
292 } 292 }
293 } 293 }
294 294
@@ -410,7 +410,8 @@ static int radeon_bo_move(struct ttm_buffer_object *bo,
410 radeon_move_null(bo, new_mem); 410 radeon_move_null(bo, new_mem);
411 return 0; 411 return 0;
412 } 412 }
413 if (!rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready || rdev->asic->copy == NULL) { 413 if (!rdev->ring[radeon_copy_ring_index(rdev)].ready ||
414 rdev->asic->copy.copy == NULL) {
414 /* use memcpy */ 415 /* use memcpy */
415 goto memcpy; 416 goto memcpy;
416 } 417 }