aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index a5311623a489..52c3eb96b199 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -411,7 +411,7 @@ static int amdgpu_cs_sync_rings(struct amdgpu_cs_parser *p)
411 411
412 list_for_each_entry(e, &p->validated, tv.head) { 412 list_for_each_entry(e, &p->validated, tv.head) {
413 struct reservation_object *resv = e->robj->tbo.resv; 413 struct reservation_object *resv = e->robj->tbo.resv;
414 r = amdgpu_sync_resv(p->adev, &p->job->ibs[0].sync, resv, p->filp); 414 r = amdgpu_sync_resv(p->adev, &p->job->sync, resv, p->filp);
415 415
416 if (r) 416 if (r)
417 return r; 417 return r;
@@ -491,7 +491,7 @@ static int amdgpu_bo_vm_update_pte(struct amdgpu_cs_parser *p,
491 if (r) 491 if (r)
492 return r; 492 return r;
493 493
494 r = amdgpu_sync_fence(adev, &p->job->ibs[0].sync, vm->page_directory_fence); 494 r = amdgpu_sync_fence(adev, &p->job->sync, vm->page_directory_fence);
495 if (r) 495 if (r)
496 return r; 496 return r;
497 497
@@ -517,14 +517,14 @@ static int amdgpu_bo_vm_update_pte(struct amdgpu_cs_parser *p,
517 return r; 517 return r;
518 518
519 f = bo_va->last_pt_update; 519 f = bo_va->last_pt_update;
520 r = amdgpu_sync_fence(adev, &p->job->ibs[0].sync, f); 520 r = amdgpu_sync_fence(adev, &p->job->sync, f);
521 if (r) 521 if (r)
522 return r; 522 return r;
523 } 523 }
524 524
525 } 525 }
526 526
527 r = amdgpu_vm_clear_invalids(adev, vm, &p->job->ibs[0].sync); 527 r = amdgpu_vm_clear_invalids(adev, vm, &p->job->sync);
528 528
529 if (amdgpu_vm_debug && p->bo_list) { 529 if (amdgpu_vm_debug && p->bo_list) {
530 /* Invalidate all BOs to test for userspace bugs */ 530 /* Invalidate all BOs to test for userspace bugs */
@@ -698,11 +698,8 @@ static int amdgpu_cs_dependencies(struct amdgpu_device *adev,
698 struct amdgpu_cs_parser *p) 698 struct amdgpu_cs_parser *p)
699{ 699{
700 struct amdgpu_fpriv *fpriv = p->filp->driver_priv; 700 struct amdgpu_fpriv *fpriv = p->filp->driver_priv;
701 struct amdgpu_ib *ib;
702 int i, j, r; 701 int i, j, r;
703 702
704 /* Add dependencies to first IB */
705 ib = &p->job->ibs[0];
706 for (i = 0; i < p->nchunks; ++i) { 703 for (i = 0; i < p->nchunks; ++i) {
707 struct drm_amdgpu_cs_chunk_dep *deps; 704 struct drm_amdgpu_cs_chunk_dep *deps;
708 struct amdgpu_cs_chunk *chunk; 705 struct amdgpu_cs_chunk *chunk;
@@ -740,7 +737,8 @@ static int amdgpu_cs_dependencies(struct amdgpu_device *adev,
740 return r; 737 return r;
741 738
742 } else if (fence) { 739 } else if (fence) {
743 r = amdgpu_sync_fence(adev, &ib->sync, fence); 740 r = amdgpu_sync_fence(adev, &p->job->sync,
741 fence);
744 fence_put(fence); 742 fence_put(fence);
745 amdgpu_ctx_put(ctx); 743 amdgpu_ctx_put(ctx);
746 if (r) 744 if (r)