aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600.c
diff options
context:
space:
mode:
authorChristian König <deathsimple@vodafone.de>2012-05-10 10:46:43 -0400
committerChristian König <deathsimple@vodafone.de>2012-06-21 03:38:40 -0400
commit220907d9835ce5181b9f782c862b1ee7a4d24c23 (patch)
tree0b06da4048162f72b2bb677d3a9686571f7be26d /drivers/gpu/drm/radeon/r600.c
parent68e250b7c281dbb75ea2a892a7d4ca27f974fc91 (diff)
drm/radeon: rework ring syncing code
Move inter ring syncing with semaphores into the existing ring allocations, with that we need to lock the ring mutex only once. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/r600.c')
-rw-r--r--drivers/gpu/drm/radeon/r600.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index a80e61e138db..aced97bb79e0 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -2311,15 +2311,16 @@ int r600_copy_blit(struct radeon_device *rdev,
2311 unsigned num_gpu_pages, 2311 unsigned num_gpu_pages,
2312 struct radeon_fence **fence) 2312 struct radeon_fence **fence)
2313{ 2313{
2314 struct radeon_semaphore *sem = NULL;
2314 struct radeon_sa_bo *vb = NULL; 2315 struct radeon_sa_bo *vb = NULL;
2315 int r; 2316 int r;
2316 2317
2317 r = r600_blit_prepare_copy(rdev, num_gpu_pages, &vb); 2318 r = r600_blit_prepare_copy(rdev, num_gpu_pages, fence, &vb, &sem);
2318 if (r) { 2319 if (r) {
2319 return r; 2320 return r;
2320 } 2321 }
2321 r600_kms_blit_copy(rdev, src_offset, dst_offset, num_gpu_pages, vb); 2322 r600_kms_blit_copy(rdev, src_offset, dst_offset, num_gpu_pages, vb);
2322 r600_blit_done_copy(rdev, fence, vb); 2323 r600_blit_done_copy(rdev, fence, vb, sem);
2323 return 0; 2324 return 0;
2324} 2325}
2325 2326