diff options
author | Junwei Zhang <Jerry.Zhang@amd.com> | 2016-09-07 05:14:46 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-09-14 15:10:27 -0400 |
commit | 8640faed5a8a8f55d6decd2d9c9f35ae687b1e4c (patch) | |
tree | c15304b6d56a841eaf4212633f10725516812742 /drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | |
parent | aa1d562e645d2542b48bdd42903726adfc87efb3 (diff) |
drm/amdgpu: free the BO in kernel by helper amdgpu_bo_free_kernel()
Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c index 242ba04bfde6..777f11b63b4c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | |||
@@ -252,28 +252,17 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring, | |||
252 | */ | 252 | */ |
253 | void amdgpu_ring_fini(struct amdgpu_ring *ring) | 253 | void amdgpu_ring_fini(struct amdgpu_ring *ring) |
254 | { | 254 | { |
255 | int r; | ||
256 | struct amdgpu_bo *ring_obj; | ||
257 | |||
258 | ring_obj = ring->ring_obj; | ||
259 | ring->ready = false; | 255 | ring->ready = false; |
260 | ring->ring = NULL; | ||
261 | ring->ring_obj = NULL; | ||
262 | 256 | ||
263 | amdgpu_wb_free(ring->adev, ring->cond_exe_offs); | 257 | amdgpu_wb_free(ring->adev, ring->cond_exe_offs); |
264 | amdgpu_wb_free(ring->adev, ring->fence_offs); | 258 | amdgpu_wb_free(ring->adev, ring->fence_offs); |
265 | amdgpu_wb_free(ring->adev, ring->rptr_offs); | 259 | amdgpu_wb_free(ring->adev, ring->rptr_offs); |
266 | amdgpu_wb_free(ring->adev, ring->wptr_offs); | 260 | amdgpu_wb_free(ring->adev, ring->wptr_offs); |
267 | 261 | ||
268 | if (ring_obj) { | 262 | amdgpu_bo_free_kernel(&ring->ring_obj, |
269 | r = amdgpu_bo_reserve(ring_obj, false); | 263 | &ring->gpu_addr, |
270 | if (likely(r == 0)) { | 264 | (void **)&ring->ring); |
271 | amdgpu_bo_kunmap(ring_obj); | 265 | |
272 | amdgpu_bo_unpin(ring_obj); | ||
273 | amdgpu_bo_unreserve(ring_obj); | ||
274 | } | ||
275 | amdgpu_bo_unref(&ring_obj); | ||
276 | } | ||
277 | amdgpu_debugfs_ring_fini(ring); | 266 | amdgpu_debugfs_ring_fini(ring); |
278 | } | 267 | } |
279 | 268 | ||