]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: reserve umf hole size at vram high end for gfx v12.1
authorLe Ma <le.ma@amd.com>
Fri, 7 Nov 2025 07:23:32 +0000 (15:23 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 5 Jan 2026 21:59:57 +0000 (16:59 -0500)
This region is reserved by firmware thus carve it out in driver.

v2: set reserve size based on aid configuration.

Signed-off-by: Le Ma <le.ma@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

index df5031357244e3496802ef75f8244a05039589a5..cfbcce9c27c5bbca492195f5acf9e8a60026b3b0 100644 (file)
@@ -1835,7 +1835,13 @@ static int amdgpu_ttm_reserve_tmr(struct amdgpu_device *adev)
             amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 4, 4) ||
             amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(9, 5, 0)))
                reserve_size = max(reserve_size, (uint32_t)280 << 20);
-       else if (!reserve_size)
+       else if (!adev->bios && 
+                amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(12, 1, 0)) {
+               if (hweight32(adev->aid_mask) == 1)
+                       reserve_size = max(reserve_size, (uint32_t)128 << 20);
+               else
+                       reserve_size = max(reserve_size, (uint32_t)144 << 20);
+       } else if (!reserve_size)
                reserve_size = DISCOVERY_TMR_OFFSET;
 
        if (mem_train_support) {