aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c5
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_job.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/cik_sdma.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c2
8 files changed, 12 insertions, 10 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 31fd7ee62e69..0523f11d915a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1178,7 +1178,7 @@ struct amdgpu_gfx {
1178 1178
1179int amdgpu_ib_get(struct amdgpu_device *adev, struct amdgpu_vm *vm, 1179int amdgpu_ib_get(struct amdgpu_device *adev, struct amdgpu_vm *vm,
1180 unsigned size, struct amdgpu_ib *ib); 1180 unsigned size, struct amdgpu_ib *ib);
1181void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib); 1181void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib, struct fence *f);
1182int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs, 1182int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
1183 struct amdgpu_ib *ib, struct fence *last_vm_update, 1183 struct amdgpu_ib *ib, struct fence *last_vm_update,
1184 struct fence **f); 1184 struct fence **f);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index 798d46626820..345cac9948be 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -85,12 +85,13 @@ int amdgpu_ib_get(struct amdgpu_device *adev, struct amdgpu_vm *vm,
85 * 85 *
86 * @adev: amdgpu_device pointer 86 * @adev: amdgpu_device pointer
87 * @ib: IB object to free 87 * @ib: IB object to free
88 * @f: the fence SA bo need wait on for the ib alloation
88 * 89 *
89 * Free an IB (all asics). 90 * Free an IB (all asics).
90 */ 91 */
91void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib) 92void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib, struct fence *f)
92{ 93{
93 amdgpu_sa_bo_free(adev, &ib->sa_bo, ib->fence); 94 amdgpu_sa_bo_free(adev, &ib->sa_bo, f);
94 fence_put(ib->fence); 95 fence_put(ib->fence);
95} 96}
96 97
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
index 692b45560d0a..df2f66666f85 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -72,7 +72,8 @@ void amdgpu_job_free(struct amdgpu_job *job)
72 unsigned i; 72 unsigned i;
73 73
74 for (i = 0; i < job->num_ibs; ++i) 74 for (i = 0; i < job->num_ibs; ++i)
75 amdgpu_ib_free(job->adev, &job->ibs[i]); 75 amdgpu_sa_bo_free(job->adev, &job->ibs[i].sa_bo, job->ibs[job->num_ibs - 1].fence);
76 fence_put(job->ibs[job->num_ibs - 1].fence);
76 77
77 amdgpu_bo_unref(&job->uf.bo); 78 amdgpu_bo_unref(&job->uf.bo);
78 amdgpu_sync_free(&job->sync); 79 amdgpu_sync_free(&job->sync);
diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
index 8663a27018a4..35cacc52e984 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
@@ -669,7 +669,7 @@ static int cik_sdma_ring_test_ib(struct amdgpu_ring *ring)
669 669
670err1: 670err1:
671 fence_put(f); 671 fence_put(f);
672 amdgpu_ib_free(adev, &ib); 672 amdgpu_ib_free(adev, &ib, NULL);
673err0: 673err0:
674 amdgpu_wb_free(adev, index); 674 amdgpu_wb_free(adev, index);
675 return r; 675 return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index a4913ebb673c..0b0689275b26 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -2163,7 +2163,7 @@ static int gfx_v7_0_ring_test_ib(struct amdgpu_ring *ring)
2163 2163
2164err2: 2164err2:
2165 fence_put(f); 2165 fence_put(f);
2166 amdgpu_ib_free(adev, &ib); 2166 amdgpu_ib_free(adev, &ib, NULL);
2167err1: 2167err1:
2168 amdgpu_gfx_scratch_free(adev, scratch); 2168 amdgpu_gfx_scratch_free(adev, scratch);
2169 return r; 2169 return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 828e205a7326..7075bf7fcd69 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -732,7 +732,7 @@ static int gfx_v8_0_ring_test_ib(struct amdgpu_ring *ring)
732 } 732 }
733err2: 733err2:
734 fence_put(f); 734 fence_put(f);
735 amdgpu_ib_free(adev, &ib); 735 amdgpu_ib_free(adev, &ib, NULL);
736err1: 736err1:
737 amdgpu_gfx_scratch_free(adev, scratch); 737 amdgpu_gfx_scratch_free(adev, scratch);
738 return r; 738 return r;
@@ -1289,7 +1289,7 @@ static int gfx_v8_0_do_edc_gpr_workarounds(struct amdgpu_device *adev)
1289 1289
1290fail: 1290fail:
1291 fence_put(f); 1291 fence_put(f);
1292 amdgpu_ib_free(adev, &ib); 1292 amdgpu_ib_free(adev, &ib, NULL);
1293 1293
1294 return r; 1294 return r;
1295} 1295}
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
index 6ac6cddf809e..5f148bd2d8ef 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
@@ -727,7 +727,7 @@ static int sdma_v2_4_ring_test_ib(struct amdgpu_ring *ring)
727 727
728err1: 728err1:
729 fence_put(f); 729 fence_put(f);
730 amdgpu_ib_free(adev, &ib); 730 amdgpu_ib_free(adev, &ib, NULL);
731err0: 731err0:
732 amdgpu_wb_free(adev, index); 732 amdgpu_wb_free(adev, index);
733 return r; 733 return r;
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
index 4c24c371fec7..1d67bce5b359 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
@@ -878,7 +878,7 @@ static int sdma_v3_0_ring_test_ib(struct amdgpu_ring *ring)
878 } 878 }
879err1: 879err1:
880 fence_put(f); 880 fence_put(f);
881 amdgpu_ib_free(adev, &ib); 881 amdgpu_ib_free(adev, &ib, NULL);
882err0: 882err0:
883 amdgpu_wb_free(adev, index); 883 amdgpu_wb_free(adev, index);
884 return r; 884 return r;