diff options
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 2 |
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 | ||
1179 | int amdgpu_ib_get(struct amdgpu_device *adev, struct amdgpu_vm *vm, | 1179 | int 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); |
1181 | void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib); | 1181 | void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib, struct fence *f); |
1182 | int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs, | 1182 | int 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 | */ |
91 | void amdgpu_ib_free(struct amdgpu_device *adev, struct amdgpu_ib *ib) | 92 | void 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 | ||
670 | err1: | 670 | err1: |
671 | fence_put(f); | 671 | fence_put(f); |
672 | amdgpu_ib_free(adev, &ib); | 672 | amdgpu_ib_free(adev, &ib, NULL); |
673 | err0: | 673 | err0: |
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 | ||
2164 | err2: | 2164 | err2: |
2165 | fence_put(f); | 2165 | fence_put(f); |
2166 | amdgpu_ib_free(adev, &ib); | 2166 | amdgpu_ib_free(adev, &ib, NULL); |
2167 | err1: | 2167 | err1: |
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 | } |
733 | err2: | 733 | err2: |
734 | fence_put(f); | 734 | fence_put(f); |
735 | amdgpu_ib_free(adev, &ib); | 735 | amdgpu_ib_free(adev, &ib, NULL); |
736 | err1: | 736 | err1: |
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 | ||
1290 | fail: | 1290 | fail: |
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 | ||
728 | err1: | 728 | err1: |
729 | fence_put(f); | 729 | fence_put(f); |
730 | amdgpu_ib_free(adev, &ib); | 730 | amdgpu_ib_free(adev, &ib, NULL); |
731 | err0: | 731 | err0: |
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 | } |
879 | err1: | 879 | err1: |
880 | fence_put(f); | 880 | fence_put(f); |
881 | amdgpu_ib_free(adev, &ib); | 881 | amdgpu_ib_free(adev, &ib, NULL); |
882 | err0: | 882 | err0: |
883 | amdgpu_wb_free(adev, index); | 883 | amdgpu_wb_free(adev, index); |
884 | return r; | 884 | return r; |