aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2017-06-26 05:37:49 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-07-14 11:05:53 -0400
commit011d4bbea969268c013eaf6e39721d3181833711 (patch)
tree91cf62eced392441a070c2ea19e21e6226a06b24
parent890419409a3aba2ca7185a824e47d8ded8df11a2 (diff)
drm/amdgpu: cleanup initializing gtt_size
Stop spreading the code over all GMC generations. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c20
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c10
6 files changed, 25 insertions, 36 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 20e0ed96efbb..df63823ad4db 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -559,6 +559,7 @@ struct amdgpu_gart {
559 const struct amdgpu_gart_funcs *gart_funcs; 559 const struct amdgpu_gart_funcs *gart_funcs;
560}; 560};
561 561
562void amdgpu_gart_set_defaults(struct amdgpu_device *adev);
562int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev); 563int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev);
563void amdgpu_gart_table_ram_free(struct amdgpu_device *adev); 564void amdgpu_gart_table_ram_free(struct amdgpu_device *adev);
564int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev); 565int amdgpu_gart_table_vram_alloc(struct amdgpu_device *adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
index a57abc1a25fb..982b1cc11dac 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
@@ -55,6 +55,26 @@
55/* 55/*
56 * Common GART table functions. 56 * Common GART table functions.
57 */ 57 */
58
59/**
60 * amdgpu_gart_set_defaults - set the default gtt_size
61 *
62 * @adev: amdgpu_device pointer
63 *
64 * Set the default gtt_size based on parameters and available VRAM.
65 */
66void amdgpu_gart_set_defaults(struct amdgpu_device *adev)
67{
68 /* unless the user had overridden it, set the gart
69 * size equal to the 1024 or vram, whichever is larger.
70 */
71 if (amdgpu_gart_size == -1)
72 adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
73 adev->mc.mc_vram_size);
74 else
75 adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
76}
77
58/** 78/**
59 * amdgpu_gart_table_ram_alloc - allocate system ram for gart page table 79 * amdgpu_gart_table_ram_alloc - allocate system ram for gart page table
60 * 80 *
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
index c1a124a86775..5f7750c6497e 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
@@ -321,15 +321,7 @@ static int gmc_v6_0_mc_init(struct amdgpu_device *adev)
321 adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL; 321 adev->mc.real_vram_size = RREG32(mmCONFIG_MEMSIZE) * 1024ULL * 1024ULL;
322 adev->mc.visible_vram_size = adev->mc.aper_size; 322 adev->mc.visible_vram_size = adev->mc.aper_size;
323 323
324 /* unless the user had overridden it, set the gart 324 amdgpu_gart_set_defaults(adev);
325 * size equal to the 1024 or vram, whichever is larger.
326 */
327 if (amdgpu_gart_size == -1)
328 adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
329 adev->mc.mc_vram_size);
330 else
331 adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
332
333 gmc_v6_0_vram_gtt_location(adev, &adev->mc); 325 gmc_v6_0_vram_gtt_location(adev, &adev->mc);
334 326
335 return 0; 327 return 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
index 575d72583746..388b52febc8b 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
@@ -373,15 +373,7 @@ static int gmc_v7_0_mc_init(struct amdgpu_device *adev)
373 if (adev->mc.visible_vram_size > adev->mc.real_vram_size) 373 if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
374 adev->mc.visible_vram_size = adev->mc.real_vram_size; 374 adev->mc.visible_vram_size = adev->mc.real_vram_size;
375 375
376 /* unless the user had overridden it, set the gart 376 amdgpu_gart_set_defaults(adev);
377 * size equal to the 1024 or vram, whichever is larger.
378 */
379 if (amdgpu_gart_size == -1)
380 adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
381 adev->mc.mc_vram_size);
382 else
383 adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
384
385 gmc_v7_0_vram_gtt_location(adev, &adev->mc); 377 gmc_v7_0_vram_gtt_location(adev, &adev->mc);
386 378
387 return 0; 379 return 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index 6379177b9fcb..d148d1c585b3 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -535,15 +535,7 @@ static int gmc_v8_0_mc_init(struct amdgpu_device *adev)
535 if (adev->mc.visible_vram_size > adev->mc.real_vram_size) 535 if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
536 adev->mc.visible_vram_size = adev->mc.real_vram_size; 536 adev->mc.visible_vram_size = adev->mc.real_vram_size;
537 537
538 /* unless the user had overridden it, set the gart 538 amdgpu_gart_set_defaults(adev);
539 * size equal to the 1024 or vram, whichever is larger.
540 */
541 if (amdgpu_gart_size == -1)
542 adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
543 adev->mc.mc_vram_size);
544 else
545 adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
546
547 gmc_v8_0_vram_gtt_location(adev, &adev->mc); 539 gmc_v8_0_vram_gtt_location(adev, &adev->mc);
548 540
549 return 0; 541 return 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
index c6394ea69f96..dbb43d99e02e 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -494,15 +494,7 @@ static int gmc_v9_0_mc_init(struct amdgpu_device *adev)
494 if (adev->mc.visible_vram_size > adev->mc.real_vram_size) 494 if (adev->mc.visible_vram_size > adev->mc.real_vram_size)
495 adev->mc.visible_vram_size = adev->mc.real_vram_size; 495 adev->mc.visible_vram_size = adev->mc.real_vram_size;
496 496
497 /* unless the user had overridden it, set the gart 497 amdgpu_gart_set_defaults(adev);
498 * size equal to the 1024 or vram, whichever is larger.
499 */
500 if (amdgpu_gart_size == -1)
501 adev->mc.gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
502 adev->mc.mc_vram_size);
503 else
504 adev->mc.gtt_size = (uint64_t)amdgpu_gart_size << 20;
505
506 gmc_v9_0_vram_gtt_location(adev, &adev->mc); 498 gmc_v9_0_vram_gtt_location(adev, &adev->mc);
507 499
508 return 0; 500 return 0;