drm/amdgpu: use new cursor in amdgpu_mem_visible
authorChristian König <christian.koenig@amd.com>
Wed, 17 Feb 2021 13:48:07 +0000 (14:48 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 24 Mar 2021 03:29:57 +0000 (23:29 -0400)
Separate the drm_mm_node walking from the actual handling.

Signed-off-by: Christian König <christian.koenig@amd.com>
Acked-by: Oak Zeng <Oak.Zeng@amd.com>
Tested-by: Nirmoy Das <nirmoy.das@amd.com>
Reviewed-by: Arunpravin <Arunpravin.PaneerSelvam@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

index 9895ece72bbe84ffc02bf93fcf2415571e29e876..36ce6f7471e265009a5db016f972190647fa8237 100644 (file)
@@ -441,7 +441,8 @@ error:
 static bool amdgpu_mem_visible(struct amdgpu_device *adev,
                               struct ttm_resource *mem)
 {
-       struct drm_mm_node *nodes = mem->mm_node;
+       uint64_t mem_size = (u64)mem->num_pages << PAGE_SHIFT;
+       struct amdgpu_res_cursor cursor;
 
        if (mem->mem_type == TTM_PL_SYSTEM ||
            mem->mem_type == TTM_PL_TT)
@@ -449,12 +450,13 @@ static bool amdgpu_mem_visible(struct amdgpu_device *adev,
        if (mem->mem_type != TTM_PL_VRAM)
                return false;
 
+       amdgpu_res_first(mem, 0, mem_size, &cursor);
+
        /* ttm_resource_ioremap only supports contiguous memory */
-       if (nodes->size != mem->num_pages)
+       if (cursor.size != mem_size)
                return false;
 
-       return ((nodes->start + nodes->size) << PAGE_SHIFT)
-               <= adev->gmc.visible_vram_size;
+       return cursor.start + cursor.size <= adev->gmc.visible_vram_size;
 }
 
 /*