Commit 011d4bbe authored by Christian König's avatar Christian König Committed by Alex Deucher

drm/amdgpu: cleanup initializing gtt_size

Stop spreading the code over all GMC generations.
Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 89041940
...@@ -559,6 +559,7 @@ struct amdgpu_gart { ...@@ -559,6 +559,7 @@ struct amdgpu_gart {
const struct amdgpu_gart_funcs *gart_funcs; const struct amdgpu_gart_funcs *gart_funcs;
}; };
void amdgpu_gart_set_defaults(struct amdgpu_device *adev);
int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev); int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev);
void amdgpu_gart_table_ram_free(struct amdgpu_device *adev); void amdgpu_gart_table_ram_free(struct amdgpu_device *adev);
int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev); int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev);
......
...@@ -55,6 +55,26 @@ ...@@ -55,6 +55,26 @@
/* /*
* Common GART table functions. * Common GART table functions.
*/ */
/**
* amdgpu_gart_set_defaults - set the default gtt_size
*
* @adev: amdgpu_device pointer
*
* Set the default gtt_size based on parameters and available VRAM.
*/
void amdgpu_gart_set_defaults(struct amdgpu_device *adev)
{
/* unless the user had overridden it, set the gart
* size equal to the 1024 or vram, whichever is larger.
*/
if (amdgpu_gart_size == -1)
adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
adev->mc.mc_vram_size);
else
adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
}
/** /**
* amdgpu_gart_table_ram_alloc - allocate system ram for gart page table * amdgpu_gart_table_ram_alloc - allocate system ram for gart page table
* *
......
...@@ -321,15 +321,7 @@ static int gmc_v6_0_mc_init(struct amdgpu_device *adev) ...@@ -321,15 +321,7 @@ static int gmc_v6_0_mc_init(struct amdgpu_device *adev)
adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL; adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
adev->mc.visible_vram_size = adev->mc.aper_size; adev->mc.visible_vram_size = adev->mc.aper_size;
/* unless the user had overridden it, set the gart amdgpu_gart_set_defaults(adev);
* size equal to the 1024 or vram, whichever is larger.
*/
if (amdgpu_gart_size == -1)
adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
adev->mc.mc_vram_size);
else
adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
gmc_v6_0_vram_gtt_location(adev, &adev->mc); gmc_v6_0_vram_gtt_location(adev, &adev->mc);
return 0; return 0;
......
...@@ -373,15 +373,7 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev) ...@@ -373,15 +373,7 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)
if (adev->mc.visible_vram_size > adev->mc.real_vram_size) if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
adev->mc.visible_vram_size = adev->mc.real_vram_size; adev->mc.visible_vram_size = adev->mc.real_vram_size;
/* unless the user had overridden it, set the gart amdgpu_gart_set_defaults(adev);
* size equal to the 1024 or vram, whichever is larger.
*/
if (amdgpu_gart_size == -1)
adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
adev->mc.mc_vram_size);
else
adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
gmc_v7_0_vram_gtt_location(adev, &adev->mc); gmc_v7_0_vram_gtt_location(adev, &adev->mc);
return 0; return 0;
......
...@@ -535,15 +535,7 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev) ...@@ -535,15 +535,7 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
if (adev->mc.visible_vram_size > adev->mc.real_vram_size) if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
adev->mc.visible_vram_size = adev->mc.real_vram_size; adev->mc.visible_vram_size = adev->mc.real_vram_size;
/* unless the user had overridden it, set the gart amdgpu_gart_set_defaults(adev);
* size equal to the 1024 or vram, whichever is larger.
*/
if (amdgpu_gart_size == -1)
adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
adev->mc.mc_vram_size);
else
adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
gmc_v8_0_vram_gtt_location(adev, &adev->mc); gmc_v8_0_vram_gtt_location(adev, &adev->mc);
return 0; return 0;
......
...@@ -494,15 +494,7 @@ static int gmc_v9_0_mc_init(struct amdgpu_device *adev) ...@@ -494,15 +494,7 @@ static int gmc_v9_0_mc_init(struct amdgpu_device *adev)
if (adev->mc.visible_vram_size > adev->mc.real_vram_size) if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
adev->mc.visible_vram_size = adev->mc.real_vram_size; adev->mc.visible_vram_size = adev->mc.real_vram_size;
/* unless the user had overridden it, set the gart amdgpu_gart_set_defaults(adev);
* size equal to the 1024 or vram, whichever is larger.
*/
if (amdgpu_gart_size == -1)
adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
adev->mc.mc_vram_size);
else
adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
gmc_v9_0_vram_gtt_location(adev, &adev->mc); gmc_v9_0_vram_gtt_location(adev, &adev->mc);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment