diff options
author | Christian König <christian.koenig@amd.com> | 2017-07-07 07:17:45 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-07-14 11:06:31 -0400 |
commit | 36d3837266c53a92a909f22f6bbf0846c0e6464f (patch) | |
tree | 5b5f9bca8890ebccc39f88ba8af33da70161dbd3 | |
parent | bb84284e10ec3447b4bb74cfa493d5c384a0b798 (diff) |
drm/amdgpu: add new gttsize module parameter v2
This allows setting the gtt size independent of the gart size.
v2: fix copy and paste typo
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.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 12 |
4 files changed, 21 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index b19557b8c683..c7436ea425b4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -76,6 +76,7 @@ | |||
76 | extern int amdgpu_modeset; | 76 | extern int amdgpu_modeset; |
77 | extern int amdgpu_vram_limit; | 77 | extern int amdgpu_vram_limit; |
78 | extern int amdgpu_gart_size; | 78 | extern int amdgpu_gart_size; |
79 | extern int amdgpu_gtt_size; | ||
79 | extern int amdgpu_moverate; | 80 | extern int amdgpu_moverate; |
80 | extern int amdgpu_benchmarking; | 81 | extern int amdgpu_benchmarking; |
81 | extern int amdgpu_testing; | 82 | extern int amdgpu_testing; |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 84ff824ea260..49dd8e0ddd17 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
@@ -1141,6 +1141,13 @@ static void amdgpu_check_arguments(struct amdgpu_device *adev) | |||
1141 | } | 1141 | } |
1142 | } | 1142 | } |
1143 | 1143 | ||
1144 | if (amdgpu_gtt_size != -1 && amdgpu_gtt_size < 32) { | ||
1145 | /* gtt size must be greater or equal to 32M */ | ||
1146 | dev_warn(adev->dev, "gtt size (%d) too small\n", | ||
1147 | amdgpu_gtt_size); | ||
1148 | amdgpu_gtt_size = -1; | ||
1149 | } | ||
1150 | |||
1144 | amdgpu_check_vm_size(adev); | 1151 | amdgpu_check_vm_size(adev); |
1145 | 1152 | ||
1146 | amdgpu_check_block_size(adev); | 1153 | amdgpu_check_block_size(adev); |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index d90dc426ee5b..b83e87fef6a8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | |||
@@ -75,6 +75,7 @@ | |||
75 | 75 | ||
76 | int amdgpu_vram_limit = 0; | 76 | int amdgpu_vram_limit = 0; |
77 | int amdgpu_gart_size = -1; /* auto */ | 77 | int amdgpu_gart_size = -1; /* auto */ |
78 | int amdgpu_gtt_size = -1; /* auto */ | ||
78 | int amdgpu_moverate = -1; /* auto */ | 79 | int amdgpu_moverate = -1; /* auto */ |
79 | int amdgpu_benchmarking = 0; | 80 | int amdgpu_benchmarking = 0; |
80 | int amdgpu_testing = 0; | 81 | int amdgpu_testing = 0; |
@@ -123,6 +124,9 @@ module_param_named(vramlimit, amdgpu_vram_limit, int, 0600); | |||
123 | MODULE_PARM_DESC(gartsize, "Size of PCIE/IGP gart to setup in megabytes (32, 64, etc., -1 = auto)"); | 124 | MODULE_PARM_DESC(gartsize, "Size of PCIE/IGP gart to setup in megabytes (32, 64, etc., -1 = auto)"); |
124 | module_param_named(gartsize, amdgpu_gart_size, int, 0600); | 125 | module_param_named(gartsize, amdgpu_gart_size, int, 0600); |
125 | 126 | ||
127 | MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 = auto)"); | ||
128 | module_param_named(gttsize, amdgpu_gtt_size, int, 0600); | ||
129 | |||
126 | MODULE_PARM_DESC(moverate, "Maximum buffer migration rate in MB/s. (32, 64, etc., -1=auto, 0=1=disabled)"); | 130 | MODULE_PARM_DESC(moverate, "Maximum buffer migration rate in MB/s. (32, 64, etc., -1=auto, 0=1=disabled)"); |
127 | module_param_named(moverate, amdgpu_moverate, int, 0600); | 131 | module_param_named(moverate, amdgpu_moverate, int, 0600); |
128 | 132 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 4e711d9af67c..b5420b20c2f5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | |||
@@ -1097,6 +1097,7 @@ static struct ttm_bo_driver amdgpu_bo_driver = { | |||
1097 | 1097 | ||
1098 | int amdgpu_ttm_init(struct amdgpu_device *adev) | 1098 | int amdgpu_ttm_init(struct amdgpu_device *adev) |
1099 | { | 1099 | { |
1100 | uint64_t gtt_size; | ||
1100 | int r; | 1101 | int r; |
1101 | 1102 | ||
1102 | r = amdgpu_ttm_global_init(adev); | 1103 | r = amdgpu_ttm_global_init(adev); |
@@ -1143,14 +1144,19 @@ int amdgpu_ttm_init(struct amdgpu_device *adev) | |||
1143 | } | 1144 | } |
1144 | DRM_INFO("amdgpu: %uM of VRAM memory ready\n", | 1145 | DRM_INFO("amdgpu: %uM of VRAM memory ready\n", |
1145 | (unsigned) (adev->mc.real_vram_size / (1024 * 1024))); | 1146 | (unsigned) (adev->mc.real_vram_size / (1024 * 1024))); |
1146 | r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_TT, | 1147 | |
1147 | adev->mc.gart_size >> PAGE_SHIFT); | 1148 | if (amdgpu_gtt_size == -1) |
1149 | gtt_size = max((AMDGPU_DEFAULT_GTT_SIZE_MB << 20), | ||
1150 | adev->mc.mc_vram_size); | ||
1151 | else | ||
1152 | gtt_size = (uint64_t)amdgpu_gtt_size << 20; | ||
1153 | r = ttm_bo_init_mm(&adev->mman.bdev, TTM_PL_TT, gtt_size >> PAGE_SHIFT); | ||
1148 | if (r) { | 1154 | if (r) { |
1149 | DRM_ERROR("Failed initializing GTT heap.\n"); | 1155 | DRM_ERROR("Failed initializing GTT heap.\n"); |
1150 | return r; | 1156 | return r; |
1151 | } | 1157 | } |
1152 | DRM_INFO("amdgpu: %uM of GTT memory ready.\n", | 1158 | DRM_INFO("amdgpu: %uM of GTT memory ready.\n", |
1153 | (unsigned)(adev->mc.gart_size / (1024 * 1024))); | 1159 | (unsigned)(gtt_size / (1024 * 1024))); |
1154 | 1160 | ||
1155 | adev->gds.mem.total_size = adev->gds.mem.total_size << AMDGPU_GDS_SHIFT; | 1161 | adev->gds.mem.total_size = adev->gds.mem.total_size << AMDGPU_GDS_SHIFT; |
1156 | adev->gds.mem.gfx_partition_size = adev->gds.mem.gfx_partition_size << AMDGPU_GDS_SHIFT; | 1162 | adev->gds.mem.gfx_partition_size = adev->gds.mem.gfx_partition_size << AMDGPU_GDS_SHIFT; |