aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2017-07-07 07:44:05 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-07-14 11:06:31 -0400
commitf9321cc4408bd90bb0adcd929c04322aaf6afdcc (patch)
treef242dc3d3eeb722a4a91f0368122368c8aadb8a8 /drivers/gpu/drm/amd
parent36d3837266c53a92a909f22f6bbf0846c0e6464f (diff)
drm/amdgpu: change gartsize default to 256MB
Limit the default GART size and save a lot of VRAM. 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>
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c12
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c9
4 files changed, 10 insertions, 19 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index c7436ea425b4..019a4b73e5f5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -75,7 +75,7 @@
75 */ 75 */
76extern int amdgpu_modeset; 76extern int amdgpu_modeset;
77extern int amdgpu_vram_limit; 77extern int amdgpu_vram_limit;
78extern int amdgpu_gart_size; 78extern unsigned amdgpu_gart_size;
79extern int amdgpu_gtt_size; 79extern int amdgpu_gtt_size;
80extern int amdgpu_moverate; 80extern int amdgpu_moverate;
81extern int amdgpu_benchmarking; 81extern int amdgpu_benchmarking;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 49dd8e0ddd17..0e629931210c 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -1132,13 +1132,11 @@ static void amdgpu_check_arguments(struct amdgpu_device *adev)
1132 amdgpu_sched_jobs = roundup_pow_of_two(amdgpu_sched_jobs); 1132 amdgpu_sched_jobs = roundup_pow_of_two(amdgpu_sched_jobs);
1133 } 1133 }
1134 1134
1135 if (amdgpu_gart_size != -1) { 1135 if (amdgpu_gart_size < 32) {
1136 /* gtt size must be greater or equal to 32M */ 1136 /* gart size must be greater or equal to 32M */
1137 if (amdgpu_gart_size < 32) { 1137 dev_warn(adev->dev, "gart size (%d) too small\n",
1138 dev_warn(adev->dev, "gart size (%d) too small\n", 1138 amdgpu_gart_size);
1139 amdgpu_gart_size); 1139 amdgpu_gart_size = 32;
1140 amdgpu_gart_size = -1;
1141 }
1142 } 1140 }
1143 1141
1144 if (amdgpu_gtt_size != -1 && amdgpu_gtt_size < 32) { 1142 if (amdgpu_gtt_size != -1 && amdgpu_gtt_size < 32) {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index b83e87fef6a8..ed760f477542 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -74,7 +74,7 @@
74#define KMS_DRIVER_PATCHLEVEL 0 74#define KMS_DRIVER_PATCHLEVEL 0
75 75
76int amdgpu_vram_limit = 0; 76int amdgpu_vram_limit = 0;
77int amdgpu_gart_size = -1; /* auto */ 77unsigned amdgpu_gart_size = 256;
78int amdgpu_gtt_size = -1; /* auto */ 78int amdgpu_gtt_size = -1; /* auto */
79int amdgpu_moverate = -1; /* auto */ 79int amdgpu_moverate = -1; /* auto */
80int amdgpu_benchmarking = 0; 80int amdgpu_benchmarking = 0;
@@ -121,8 +121,8 @@ int amdgpu_lbpw = -1;
121MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testing, in megabytes"); 121MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testing, in megabytes");
122module_param_named(vramlimit, amdgpu_vram_limit, int, 0600); 122module_param_named(vramlimit, amdgpu_vram_limit, int, 0600);
123 123
124MODULE_PARM_DESC(gartsize, "Size of PCIE/IGP gart to setup in megabytes (32, 64, etc., -1 = auto)"); 124MODULE_PARM_DESC(gartsize, "Size of PCIE/IGP gart to setup in megabytes (32, 64, etc.)");
125module_param_named(gartsize, amdgpu_gart_size, int, 0600); 125module_param_named(gartsize, amdgpu_gart_size, uint, 0600);
126 126
127MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 = auto)"); 127MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 = auto)");
128module_param_named(gttsize, amdgpu_gtt_size, int, 0600); 128module_param_named(gttsize, amdgpu_gtt_size, int, 0600);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
index d578ca6f2dfd..5cc4987cd887 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
@@ -65,14 +65,7 @@
65 */ 65 */
66void amdgpu_gart_set_defaults(struct amdgpu_device *adev) 66void amdgpu_gart_set_defaults(struct amdgpu_device *adev)
67{ 67{
68 /* unless the user had overridden it, set the gart 68 adev->mc.gart_size = (uint64_t)amdgpu_gart_size << 20;
69 * size equal to the 1024 or vram, whichever is larger.
70 */
71 if (amdgpu_gart_size == -1)
72 adev->mc.gart_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20),
73 adev->mc.mc_vram_size);
74 else
75 adev->mc.gart_size = (uint64_t)amdgpu_gart_size << 20;
76} 69}
77 70
78/** 71/**