aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
index 5ebb3f43feb6..3ab4c65ecc8b 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
@@ -119,8 +119,6 @@ int amdgpu_ih_ring_init(struct amdgpu_device *adev, unsigned ring_size,
119 */ 119 */
120void amdgpu_ih_ring_fini(struct amdgpu_device *adev) 120void amdgpu_ih_ring_fini(struct amdgpu_device *adev)
121{ 121{
122 int r;
123
124 if (adev->irq.ih.use_bus_addr) { 122 if (adev->irq.ih.use_bus_addr) {
125 if (adev->irq.ih.ring) { 123 if (adev->irq.ih.ring) {
126 /* add 8 bytes for the rptr/wptr shadows and 124 /* add 8 bytes for the rptr/wptr shadows and
@@ -132,17 +130,9 @@ void amdgpu_ih_ring_fini(struct amdgpu_device *adev)
132 adev->irq.ih.ring = NULL; 130 adev->irq.ih.ring = NULL;
133 } 131 }
134 } else { 132 } else {
135 if (adev->irq.ih.ring_obj) { 133 amdgpu_bo_free_kernel(&adev->irq.ih.ring_obj,
136 r = amdgpu_bo_reserve(adev->irq.ih.ring_obj, false); 134 &adev->irq.ih.gpu_addr,
137 if (likely(r == 0)) { 135 (void **)&adev->irq.ih.ring);
138 amdgpu_bo_kunmap(adev->irq.ih.ring_obj);
139 amdgpu_bo_unpin(adev->irq.ih.ring_obj);
140 amdgpu_bo_unreserve(adev->irq.ih.ring_obj);
141 }
142 amdgpu_bo_unref(&adev->irq.ih.ring_obj);
143 adev->irq.ih.ring = NULL;
144 adev->irq.ih.ring_obj = NULL;
145 }
146 amdgpu_wb_free(adev, adev->irq.ih.wptr_offs); 136 amdgpu_wb_free(adev, adev->irq.ih.wptr_offs);
147 amdgpu_wb_free(adev, adev->irq.ih.rptr_offs); 137 amdgpu_wb_free(adev, adev->irq.ih.rptr_offs);
148 } 138 }