diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_ttm.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_ttm.c | 15 |
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 | } |