drm/amdgpu/gmc10: adjust gart size for parts that support S/G display
authorAlex Deucher <alexander.deucher@amd.com>
Mon, 9 May 2022 15:40:09 +0000 (11:40 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 12 Jul 2022 14:03:20 +0000 (10:03 -0400)
For GMC 10 parts which support scatter/gather display (display
from system memory), we should allocate a larger gart size
to better handler larger displays.  This mirrors what we already
do for GMC 9 parts.

v2: fix typo (Alex)

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c

index 25d5743..1772f00 100644 (file)
@@ -834,10 +834,21 @@ static int gmc_v10_0_mc_init(struct amdgpu_device *adev)
                adev->gmc.visible_vram_size = adev->gmc.real_vram_size;
 
        /* set the gart size */
-       if (amdgpu_gart_size == -1)
-               adev->gmc.gart_size = 512ULL << 20;
-       else
+       if (amdgpu_gart_size == -1) {
+               switch (adev->ip_versions[GC_HWIP][0]) {
+               default:
+                       adev->gmc.gart_size = 512ULL << 20;
+                       break;
+               case IP_VERSION(10, 3, 1):   /* DCE SG support */
+               case IP_VERSION(10, 3, 3):   /* DCE SG support */
+               case IP_VERSION(10, 3, 6):   /* DCE SG support */
+               case IP_VERSION(10, 3, 7):   /* DCE SG support */
+                       adev->gmc.gart_size = 1024ULL << 20;
+                       break;
+               }
+       } else {
                adev->gmc.gart_size = (u64)amdgpu_gart_size << 20;
+       }
 
        gmc_v10_0_vram_gtt_location(adev, &adev->gmc);