From: Harish Kasiviswanathan <harish.kasiviswanat...@amd.com>

For GFX 9.4.3 APP APU VRAM is allocated in GTT domain. While freeing
memory check for GTT domain instead of VRAM if it is APP APU

Signed-off-by: Harish Kasiviswanathan <harish.kasiviswanat...@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehl...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
index 40078c0a5585..ca0d326b43c3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
@@ -1885,11 +1885,14 @@ int amdgpu_amdkfd_gpuvm_free_memory_of_gpu(
        }
 
        /* Update the size of the BO being freed if it was allocated from
-        * VRAM and is not imported.
+        * VRAM and is not imported. For APP APU VRAM allocations are done
+        * in GTT domain
         */
        if (size) {
-               if ((mem->bo->preferred_domains == AMDGPU_GEM_DOMAIN_VRAM) &&
-                   (!is_imported))
+               if (!is_imported &&
+                  (mem->bo->preferred_domains == AMDGPU_GEM_DOMAIN_VRAM ||
+                  (adev->gmc.is_app_apu &&
+                   mem->bo->preferred_domains == AMDGPU_GEM_DOMAIN_GTT)))
                        *size = bo_size;
                else
                        *size = 0;
-- 
2.40.1

Reply via email to