diff options
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 16 |
4 files changed, 20 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index 12e71bbfd222..103635ab784c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h | |||
@@ -76,7 +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_vis_vram_limit; | 78 | extern int amdgpu_vis_vram_limit; |
79 | extern unsigned amdgpu_gart_size; | 79 | extern int amdgpu_gart_size; |
80 | extern int amdgpu_gtt_size; | 80 | extern int amdgpu_gtt_size; |
81 | extern int amdgpu_moverate; | 81 | extern int amdgpu_moverate; |
82 | extern int amdgpu_benchmarking; | 82 | extern int amdgpu_benchmarking; |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 1a459ac63df4..f7ffb029f6d5 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |||
@@ -1062,11 +1062,11 @@ static void amdgpu_check_arguments(struct amdgpu_device *adev) | |||
1062 | amdgpu_sched_jobs = roundup_pow_of_two(amdgpu_sched_jobs); | 1062 | amdgpu_sched_jobs = roundup_pow_of_two(amdgpu_sched_jobs); |
1063 | } | 1063 | } |
1064 | 1064 | ||
1065 | if (amdgpu_gart_size < 32) { | 1065 | if (amdgpu_gart_size != -1 && amdgpu_gart_size < 32) { |
1066 | /* gart size must be greater or equal to 32M */ | 1066 | /* gart size must be greater or equal to 32M */ |
1067 | dev_warn(adev->dev, "gart size (%d) too small\n", | 1067 | dev_warn(adev->dev, "gart size (%d) too small\n", |
1068 | amdgpu_gart_size); | 1068 | amdgpu_gart_size); |
1069 | amdgpu_gart_size = 32; | 1069 | amdgpu_gart_size = -1; |
1070 | } | 1070 | } |
1071 | 1071 | ||
1072 | if (amdgpu_gtt_size != -1 && amdgpu_gtt_size < 32) { | 1072 | 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 e39ec981b11c..4ecf73787475 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | |||
@@ -76,7 +76,7 @@ | |||
76 | 76 | ||
77 | int amdgpu_vram_limit = 0; | 77 | int amdgpu_vram_limit = 0; |
78 | int amdgpu_vis_vram_limit = 0; | 78 | int amdgpu_vis_vram_limit = 0; |
79 | unsigned amdgpu_gart_size = 256; | 79 | int amdgpu_gart_size = -1; /* auto */ |
80 | int amdgpu_gtt_size = -1; /* auto */ | 80 | int amdgpu_gtt_size = -1; /* auto */ |
81 | int amdgpu_moverate = -1; /* auto */ | 81 | int amdgpu_moverate = -1; /* auto */ |
82 | int amdgpu_benchmarking = 0; | 82 | int amdgpu_benchmarking = 0; |
@@ -128,7 +128,7 @@ module_param_named(vramlimit, amdgpu_vram_limit, int, 0600); | |||
128 | MODULE_PARM_DESC(vis_vramlimit, "Restrict visible VRAM for testing, in megabytes"); | 128 | MODULE_PARM_DESC(vis_vramlimit, "Restrict visible VRAM for testing, in megabytes"); |
129 | module_param_named(vis_vramlimit, amdgpu_vis_vram_limit, int, 0444); | 129 | module_param_named(vis_vramlimit, amdgpu_vis_vram_limit, int, 0444); |
130 | 130 | ||
131 | MODULE_PARM_DESC(gartsize, "Size of PCIE/IGP gart to setup in megabytes (32, 64, etc.)"); | 131 | MODULE_PARM_DESC(gartsize, "Size of gart to setup in megabytes (32, 64, etc., -1=auto)"); |
132 | module_param_named(gartsize, amdgpu_gart_size, uint, 0600); | 132 | module_param_named(gartsize, amdgpu_gart_size, uint, 0600); |
133 | 133 | ||
134 | MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 = auto)"); | 134 | MODULE_PARM_DESC(gttsize, "Size of the GTT domain in megabytes (-1 = auto)"); |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c index 94c1e2e8e34c..b9b9f680fc08 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | |||
@@ -65,7 +65,21 @@ | |||
65 | */ | 65 | */ |
66 | void amdgpu_gart_set_defaults(struct amdgpu_device *adev) | 66 | void amdgpu_gart_set_defaults(struct amdgpu_device *adev) |
67 | { | 67 | { |
68 | adev->mc.gart_size = (uint64_t)amdgpu_gart_size << 20; | 68 | u64 gart_size; |
69 | |||
70 | if (amdgpu_gart_size == -1) { | ||
71 | /* make the GART larger for chips that | ||
72 | * dont' support VM for all rings | ||
73 | */ | ||
74 | if (adev->asic_type <= CHIP_STONEY) | ||
75 | gart_size = 1024; | ||
76 | else | ||
77 | gart_size = 256; | ||
78 | } else { | ||
79 | gart_size = amdgpu_gart_size; | ||
80 | } | ||
81 | |||
82 | adev->mc.gart_size = gart_size << 20; | ||
69 | } | 83 | } |
70 | 84 | ||
71 | /** | 85 | /** |