|
@@ -229,8 +229,6 @@ void radeon_test_ring_sync(struct radeon_device *rdev,
|
|
|
{
|
|
|
struct radeon_fence *fence1 = NULL, *fence2 = NULL;
|
|
|
struct radeon_semaphore *semaphore = NULL;
|
|
|
- int ridxA = radeon_ring_index(rdev, ringA);
|
|
|
- int ridxB = radeon_ring_index(rdev, ringB);
|
|
|
int r;
|
|
|
|
|
|
r = radeon_semaphore_create(rdev, &semaphore);
|
|
@@ -241,18 +239,18 @@ void radeon_test_ring_sync(struct radeon_device *rdev,
|
|
|
|
|
|
r = radeon_ring_lock(rdev, ringA, 64);
|
|
|
if (r) {
|
|
|
- DRM_ERROR("Failed to lock ring A %d\n", ridxA);
|
|
|
+ DRM_ERROR("Failed to lock ring A %d\n", ringA->idx);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
|
- radeon_semaphore_emit_wait(rdev, ridxA, semaphore);
|
|
|
- r = radeon_fence_emit(rdev, &fence1, ridxA);
|
|
|
+ radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore);
|
|
|
+ r = radeon_fence_emit(rdev, &fence1, ringA->idx);
|
|
|
if (r) {
|
|
|
DRM_ERROR("Failed to emit fence 1\n");
|
|
|
radeon_ring_unlock_undo(rdev, ringA);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
|
- radeon_semaphore_emit_wait(rdev, ridxA, semaphore);
|
|
|
- r = radeon_fence_emit(rdev, &fence2, ridxA);
|
|
|
+ radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore);
|
|
|
+ r = radeon_fence_emit(rdev, &fence2, ringA->idx);
|
|
|
if (r) {
|
|
|
DRM_ERROR("Failed to emit fence 2\n");
|
|
|
radeon_ring_unlock_undo(rdev, ringA);
|
|
@@ -272,7 +270,7 @@ void radeon_test_ring_sync(struct radeon_device *rdev,
|
|
|
DRM_ERROR("Failed to lock ring B %p\n", ringB);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
|
- radeon_semaphore_emit_signal(rdev, ridxB, semaphore);
|
|
|
+ radeon_semaphore_emit_signal(rdev, ringB->idx, semaphore);
|
|
|
radeon_ring_unlock_commit(rdev, ringB);
|
|
|
|
|
|
r = radeon_fence_wait(fence1, false);
|
|
@@ -293,7 +291,7 @@ void radeon_test_ring_sync(struct radeon_device *rdev,
|
|
|
DRM_ERROR("Failed to lock ring B %p\n", ringB);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
|
- radeon_semaphore_emit_signal(rdev, ridxB, semaphore);
|
|
|
+ radeon_semaphore_emit_signal(rdev, ringB->idx, semaphore);
|
|
|
radeon_ring_unlock_commit(rdev, ringB);
|
|
|
|
|
|
r = radeon_fence_wait(fence2, false);
|
|
@@ -322,9 +320,6 @@ void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|
|
{
|
|
|
struct radeon_fence *fenceA = NULL, *fenceB = NULL;
|
|
|
struct radeon_semaphore *semaphore = NULL;
|
|
|
- int ridxA = radeon_ring_index(rdev, ringA);
|
|
|
- int ridxB = radeon_ring_index(rdev, ringB);
|
|
|
- int ridxC = radeon_ring_index(rdev, ringC);
|
|
|
bool sigA, sigB;
|
|
|
int i, r;
|
|
|
|
|
@@ -336,11 +331,11 @@ void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|
|
|
|
|
r = radeon_ring_lock(rdev, ringA, 64);
|
|
|
if (r) {
|
|
|
- DRM_ERROR("Failed to lock ring A %d\n", ridxA);
|
|
|
+ DRM_ERROR("Failed to lock ring A %d\n", ringA->idx);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
|
- radeon_semaphore_emit_wait(rdev, ridxA, semaphore);
|
|
|
- r = radeon_fence_emit(rdev, &fenceA, ridxA);
|
|
|
+ radeon_semaphore_emit_wait(rdev, ringA->idx, semaphore);
|
|
|
+ r = radeon_fence_emit(rdev, &fenceA, ringA->idx);
|
|
|
if (r) {
|
|
|
DRM_ERROR("Failed to emit sync fence 1\n");
|
|
|
radeon_ring_unlock_undo(rdev, ringA);
|
|
@@ -350,11 +345,11 @@ void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|
|
|
|
|
r = radeon_ring_lock(rdev, ringB, 64);
|
|
|
if (r) {
|
|
|
- DRM_ERROR("Failed to lock ring B %d\n", ridxB);
|
|
|
+ DRM_ERROR("Failed to lock ring B %d\n", ringB->idx);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
|
- radeon_semaphore_emit_wait(rdev, ridxB, semaphore);
|
|
|
- r = radeon_fence_emit(rdev, &fenceB, ridxB);
|
|
|
+ radeon_semaphore_emit_wait(rdev, ringB->idx, semaphore);
|
|
|
+ r = radeon_fence_emit(rdev, &fenceB, ringB->idx);
|
|
|
if (r) {
|
|
|
DRM_ERROR("Failed to create sync fence 2\n");
|
|
|
radeon_ring_unlock_undo(rdev, ringB);
|
|
@@ -378,7 +373,7 @@ void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|
|
DRM_ERROR("Failed to lock ring B %p\n", ringC);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
|
- radeon_semaphore_emit_signal(rdev, ridxC, semaphore);
|
|
|
+ radeon_semaphore_emit_signal(rdev, ringC->idx, semaphore);
|
|
|
radeon_ring_unlock_commit(rdev, ringC);
|
|
|
|
|
|
for (i = 0; i < 30; ++i) {
|
|
@@ -404,7 +399,7 @@ void radeon_test_ring_sync2(struct radeon_device *rdev,
|
|
|
DRM_ERROR("Failed to lock ring B %p\n", ringC);
|
|
|
goto out_cleanup;
|
|
|
}
|
|
|
- radeon_semaphore_emit_signal(rdev, ridxC, semaphore);
|
|
|
+ radeon_semaphore_emit_signal(rdev, ringC->idx, semaphore);
|
|
|
radeon_ring_unlock_commit(rdev, ringC);
|
|
|
|
|
|
mdelay(1000);
|