aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c42
1 files changed, 0 insertions, 42 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
index a6fee511aab5..7f12a4d55c52 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
@@ -261,48 +261,6 @@ int amdgpu_sync_wait(struct amdgpu_sync *sync)
261} 261}
262 262
263/** 263/**
264 * amdgpu_sync_rings - sync ring to all registered fences
265 *
266 * @sync: sync object to use
267 * @ring: ring that needs sync
268 *
269 * Ensure that all registered fences are signaled before letting
270 * the ring continue. The caller must hold the ring lock.
271 */
272int amdgpu_sync_rings(struct amdgpu_sync *sync,
273 struct amdgpu_ring *ring)
274{
275 struct amdgpu_device *adev = ring->adev;
276 int i, r;
277
278 for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
279 struct amdgpu_ring *other = adev->rings[i];
280 struct amdgpu_fence *fence;
281
282 if (!sync->sync_to[i])
283 continue;
284
285 fence = to_amdgpu_fence(sync->sync_to[i]);
286
287 /* prevent GPU deadlocks */
288 if (!other->ready) {
289 dev_err(adev->dev, "Syncing to a disabled ring!");
290 return -EINVAL;
291 }
292
293 if (amdgpu_enable_scheduler) {
294 r = fence_wait(sync->sync_to[i], true);
295 if (r)
296 return r;
297 continue;
298 }
299
300 }
301
302 return 0;
303}
304
305/**
306 * amdgpu_sync_free - free the sync object 264 * amdgpu_sync_free - free the sync object
307 * 265 *
308 * @adev: amdgpu_device pointer 266 * @adev: amdgpu_device pointer