Thought so, in this case the patch is Reviewed-by: Christian König <christian.koe...@amd.com>.

Regards,
Christian.

Am 14.11.2017 um 16:02 schrieb Liu, Monk:
Yeah CSA is allocated right after in GMC hw init (and after WB_INIT)
So we can put the free of it right before WB_INIT, thus avoiding doing it in 
each GFX IP's sw_init



-----Original Message-----
From: Christian König [mailto:ckoenig.leichtzumer...@gmail.com]
Sent: 2017年11月14日 19:55
To: Liu, Monk <monk....@amd.com>; amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH 07/10] drm/amdgpu:free CSA in unified place

Am 14.11.2017 um 10:07 schrieb Monk Liu:
instead of doing it in each GFX ip's sw_fini
Mhm, is that allocated in the same way as well?

Change-Id: Idf0fd500d4fc385cf7a930cc56305070c937bf20
Signed-off-by: Monk Liu <monk....@amd.com>
---
   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 +
   drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c   | 6 ++++++
   drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h   | 1 +
   drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c      | 1 -
   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c      | 1 -
   5 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index c13b493..ccb33ef 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -1865,6 +1865,7 @@ static int amdgpu_fini(struct amdgpu_device *adev)
                if (!adev->ip_blocks[i].status.hw)
                        continue;
                if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
+                       amdgpu_free_static_csa(adev);
                        amdgpu_wb_fini(adev);
                        amdgpu_vram_scratch_fini(adev);
                }
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
index 67fd110..118c84c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c
@@ -47,6 +47,12 @@ int amdgpu_allocate_static_csa(struct amdgpu_device *adev)
        return 0;
   }
+void amdgpu_free_static_csa(struct amdgpu_device *adev) {
+       amdgpu_bo_free_kernel(&adev->virt.csa_obj,
+                                               &adev->virt.csa_vmid0_addr,
+                                               NULL);
The coding style here looks odd.

Christian.

+}
+
   /*
    * amdgpu_map_static_csa should be called during amdgpu_vm_init
    * it maps virtual address "AMDGPU_VA_RESERVED_SIZE - AMDGPU_CSA_SIZE"
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
index f77d116..6a83425 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
@@ -283,6 +283,7 @@ bool amdgpu_virt_mmio_blocked(struct amdgpu_device *adev);
   int amdgpu_allocate_static_csa(struct amdgpu_device *adev);
   int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm,
                          struct amdgpu_bo_va **bo_va);
+void amdgpu_free_static_csa(struct amdgpu_device *adev);
   void amdgpu_virt_init_setting(struct amdgpu_device *adev);
   uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg);
   void amdgpu_virt_kiq_wreg(struct amdgpu_device *adev, uint32_t reg,
uint32_t v); diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 9f5d123..82d157e 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -2114,7 +2114,6 @@ static int gfx_v8_0_sw_fini(void *handle)
        amdgpu_gfx_compute_mqd_sw_fini(adev);
        amdgpu_gfx_kiq_free_ring(&adev->gfx.kiq.ring, &adev->gfx.kiq.irq);
        amdgpu_gfx_kiq_fini(adev);
-       amdgpu_bo_free_kernel(&adev->virt.csa_obj, &adev->virt.csa_vmid0_addr, 
NULL);
gfx_v8_0_mec_fini(adev);
        gfx_v8_0_rlc_fini(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index 5a4c074..034bcbe 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -1455,7 +1455,6 @@ static int gfx_v9_0_sw_fini(void *handle)
        amdgpu_gfx_compute_mqd_sw_fini(adev);
        amdgpu_gfx_kiq_free_ring(&adev->gfx.kiq.ring, &adev->gfx.kiq.irq);
        amdgpu_gfx_kiq_fini(adev);
-       amdgpu_bo_free_kernel(&adev->virt.csa_obj, &adev->virt.csa_vmid0_addr, 
NULL);
gfx_v9_0_mec_fini(adev);
        gfx_v9_0_ngg_fini(adev);

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to