diff options
author | Christian König <deathsimple@vodafone.de> | 2012-05-10 10:46:43 -0400 |
---|---|---|
committer | Christian König <deathsimple@vodafone.de> | 2012-06-21 03:38:40 -0400 |
commit | 220907d9835ce5181b9f782c862b1ee7a4d24c23 (patch) | |
tree | 0b06da4048162f72b2bb677d3a9686571f7be26d /drivers/gpu/drm/radeon/r600.c | |
parent | 68e250b7c281dbb75ea2a892a7d4ca27f974fc91 (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.c | 5 |
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 | ||