Change-Id: Ib634375b90d875fe04a890fc82fb1e3b7112676a Signed-off-by: Roger He <Hongbo.He at amd.com> --- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 17bf0ce..d773c5e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -1328,13 +1328,19 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) if (amdgpu_gtt_size == -1) { struct sysinfo si; + uint64_t sys_mem_size; si_meminfo(&si); - gtt_size = min(max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20), - adev->mc.mc_vram_size), - ((uint64_t)si.totalram * si.mem_unit * 3/4)); - } - else + sys_mem_size = (uint64_t)si.totalram * si.mem_unit; + gtt_size = AMDGPU_DEFAULT_GTT_SIZE_MB << 20; + + /* leave 2GB for OS to work with */ + if (sys_mem_size > (2ULL << 30)) { + gtt_size = max(gtt_size, sys_mem_size - (2ULL << 30)); + } else + DRM_INFO("amdgpu: Too small system memory %llu MB\n", + sys_mem_size >> 20); + } else gtt_size = (uint64_t)amdgpu_gtt_size << 20; r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_TT, gtt_size >> PAGE_SHIFT); if (r) { -- 2.7.4