From: Christian König <[email protected]>

Saves us even more loc.

Signed-off-by: Christian König <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 13 +-----
 drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c      | 37 ++---------------
 drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c      | 67 +++---------------------------
 drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c      | 37 ++---------------
 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c      | 24 +----------
 5 files changed, 15 insertions(+), 163 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 60f60e9..d01737d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -346,18 +346,7 @@ static int amdgpu_vram_scratch_init(struct amdgpu_device 
*adev)
 
 static void amdgpu_vram_scratch_fini(struct amdgpu_device *adev)
 {
-       int r;
-
-       if (adev->vram_scratch.robj == NULL) {
-               return;
-       }
-       r = amdgpu_bo_reserve(adev->vram_scratch.robj, true);
-       if (likely(r == 0)) {
-               amdgpu_bo_kunmap(adev->vram_scratch.robj);
-               amdgpu_bo_unpin(adev->vram_scratch.robj);
-               amdgpu_bo_unreserve(adev->vram_scratch.robj);
-       }
-       amdgpu_bo_unref(&adev->vram_scratch.robj);
+       amdgpu_bo_free_kernel(&adev->vram_scratch.robj, NULL, NULL);
 }
 
 /**
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
index faf8d28..d228f5a 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
@@ -2217,40 +2217,9 @@ static void gfx_v6_0_ring_emit_vm_flush(struct 
amdgpu_ring *ring,
 
 static void gfx_v6_0_rlc_fini(struct amdgpu_device *adev)
 {
-       int r;
-
-       if (adev->gfx.rlc.save_restore_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.rlc.save_restore_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve RLC sr bo failed\n", 
r);
-               amdgpu_bo_unpin(adev->gfx.rlc.save_restore_obj);
-               amdgpu_bo_unreserve(adev->gfx.rlc.save_restore_obj);
-
-               amdgpu_bo_unref(&adev->gfx.rlc.save_restore_obj);
-               adev->gfx.rlc.save_restore_obj = NULL;
-       }
-
-       if (adev->gfx.rlc.clear_state_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve RLC c bo failed\n", 
r);
-               amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-               amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
-               amdgpu_bo_unref(&adev->gfx.rlc.clear_state_obj);
-               adev->gfx.rlc.clear_state_obj = NULL;
-       }
-
-       if (adev->gfx.rlc.cp_table_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve RLC cp table bo 
failed\n", r);
-               amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj);
-               amdgpu_bo_unreserve(adev->gfx.rlc.cp_table_obj);
-
-               amdgpu_bo_unref(&adev->gfx.rlc.cp_table_obj);
-               adev->gfx.rlc.cp_table_obj = NULL;
-       }
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.save_restore_obj, NULL, NULL);
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj, NULL, NULL);
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj, NULL, NULL);
 }
 
 static int gfx_v6_0_rlc_init(struct amdgpu_device *adev)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index 6e6e952..ad4b5c3 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -2774,39 +2774,18 @@ static int gfx_v7_0_cp_compute_load_microcode(struct 
amdgpu_device *adev)
  */
 static void gfx_v7_0_cp_compute_fini(struct amdgpu_device *adev)
 {
-       int i, r;
+       int i;
 
        for (i = 0; i < adev->gfx.num_compute_rings; i++) {
                struct amdgpu_ring *ring = &adev->gfx.compute_ring[i];
 
-               if (ring->mqd_obj) {
-                       r = amdgpu_bo_reserve(ring->mqd_obj, true);
-                       if (unlikely(r != 0))
-                               dev_warn(adev->dev, "(%d) reserve MQD bo 
failed\n", r);
-
-                       amdgpu_bo_unpin(ring->mqd_obj);
-                       amdgpu_bo_unreserve(ring->mqd_obj);
-
-                       amdgpu_bo_unref(&ring->mqd_obj);
-                       ring->mqd_obj = NULL;
-               }
+               amdgpu_bo_free_kernel(&ring->mqd_obj, NULL, NULL);
        }
 }
 
 static void gfx_v7_0_mec_fini(struct amdgpu_device *adev)
 {
-       int r;
-
-       if (adev->gfx.mec.hpd_eop_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", 
r);
-               amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj);
-               amdgpu_bo_unreserve(adev->gfx.mec.hpd_eop_obj);
-
-               amdgpu_bo_unref(&adev->gfx.mec.hpd_eop_obj);
-               adev->gfx.mec.hpd_eop_obj = NULL;
-       }
+       amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
 }
 
 static int gfx_v7_0_mec_init(struct amdgpu_device *adev)
@@ -3320,43 +3299,9 @@ static void gfx_v7_0_ring_emit_vm_flush(struct 
amdgpu_ring *ring,
  */
 static void gfx_v7_0_rlc_fini(struct amdgpu_device *adev)
 {
-       int r;
-
-       /* save restore block */
-       if (adev->gfx.rlc.save_restore_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.rlc.save_restore_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve RLC sr bo failed\n", 
r);
-               amdgpu_bo_unpin(adev->gfx.rlc.save_restore_obj);
-               amdgpu_bo_unreserve(adev->gfx.rlc.save_restore_obj);
-
-               amdgpu_bo_unref(&adev->gfx.rlc.save_restore_obj);
-               adev->gfx.rlc.save_restore_obj = NULL;
-       }
-
-       /* clear state block */
-       if (adev->gfx.rlc.clear_state_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve RLC c bo failed\n", 
r);
-               amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-               amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-
-               amdgpu_bo_unref(&adev->gfx.rlc.clear_state_obj);
-               adev->gfx.rlc.clear_state_obj = NULL;
-       }
-
-       /* clear state block */
-       if (adev->gfx.rlc.cp_table_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve RLC cp table bo 
failed\n", r);
-               amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj);
-               amdgpu_bo_unreserve(adev->gfx.rlc.cp_table_obj);
-
-               amdgpu_bo_unref(&adev->gfx.rlc.cp_table_obj);
-               adev->gfx.rlc.cp_table_obj = NULL;
-       }
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.save_restore_obj, NULL, NULL);
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj, NULL, NULL);
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj, NULL, NULL);
 }
 
 static int gfx_v7_0_rlc_init(struct amdgpu_device *adev)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index b086f4e..3cf742d 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -1238,29 +1238,8 @@ static void cz_init_cp_jump_table(struct amdgpu_device 
*adev)
 
 static void gfx_v8_0_rlc_fini(struct amdgpu_device *adev)
 {
-       int r;
-
-       /* clear state block */
-       if (adev->gfx.rlc.clear_state_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve RLC cbs bo failed\n", 
r);
-               amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj);
-               amdgpu_bo_unreserve(adev->gfx.rlc.clear_state_obj);
-               amdgpu_bo_unref(&adev->gfx.rlc.clear_state_obj);
-               adev->gfx.rlc.clear_state_obj = NULL;
-       }
-
-       /* jump table block */
-       if (adev->gfx.rlc.cp_table_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve RLC cp table bo 
failed\n", r);
-               amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj);
-               amdgpu_bo_unreserve(adev->gfx.rlc.cp_table_obj);
-               amdgpu_bo_unref(&adev->gfx.rlc.cp_table_obj);
-               adev->gfx.rlc.cp_table_obj = NULL;
-       }
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.clear_state_obj, NULL, NULL);
+       amdgpu_bo_free_kernel(&adev->gfx.rlc.cp_table_obj, NULL, NULL);
 }
 
 static int gfx_v8_0_rlc_init(struct amdgpu_device *adev)
@@ -1320,17 +1299,7 @@ static int gfx_v8_0_rlc_init(struct amdgpu_device *adev)
 
 static void gfx_v8_0_mec_fini(struct amdgpu_device *adev)
 {
-       int r;
-
-       if (adev->gfx.mec.hpd_eop_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", 
r);
-               amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj);
-               amdgpu_bo_unreserve(adev->gfx.mec.hpd_eop_obj);
-               amdgpu_bo_unref(&adev->gfx.mec.hpd_eop_obj);
-               adev->gfx.mec.hpd_eop_obj = NULL;
-       }
+       amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
 }
 
 static int gfx_v8_0_mec_init(struct amdgpu_device *adev)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c 
b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index 024eccc..8d52ed5 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -817,28 +817,8 @@ static int gfx_v9_0_rlc_init(struct amdgpu_device *adev)
 
 static void gfx_v9_0_mec_fini(struct amdgpu_device *adev)
 {
-       int r;
-
-       if (adev->gfx.mec.hpd_eop_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", 
r);
-               amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj);
-               amdgpu_bo_unreserve(adev->gfx.mec.hpd_eop_obj);
-
-               amdgpu_bo_unref(&adev->gfx.mec.hpd_eop_obj);
-               adev->gfx.mec.hpd_eop_obj = NULL;
-       }
-       if (adev->gfx.mec.mec_fw_obj) {
-               r = amdgpu_bo_reserve(adev->gfx.mec.mec_fw_obj, true);
-               if (unlikely(r != 0))
-                       dev_warn(adev->dev, "(%d) reserve mec firmware bo 
failed\n", r);
-               amdgpu_bo_unpin(adev->gfx.mec.mec_fw_obj);
-               amdgpu_bo_unreserve(adev->gfx.mec.mec_fw_obj);
-
-               amdgpu_bo_unref(&adev->gfx.mec.mec_fw_obj);
-               adev->gfx.mec.mec_fw_obj = NULL;
-       }
+       amdgpu_bo_free_kernel(&adev->gfx.mec.hpd_eop_obj, NULL, NULL);
+       amdgpu_bo_free_kernel(&adev->gfx.mec.mec_fw_obj, NULL, NULL);
 }
 
 static int gfx_v9_0_mec_init(struct amdgpu_device *adev)
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to