diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 14 |
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) |