]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Add stolen_reserved reserve-region
authorLijo Lazar <lijo.lazar@amd.com>
Wed, 25 Mar 2026 11:38:45 +0000 (17:08 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 3 Apr 2026 17:49:43 +0000 (13:49 -0400)
Use reserve region helpers for initializing/reserving stolen_reserved region.

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h

index 4d066955be8568254ad9743761cbdd5176464fc8..c3b83d9f110e558e23845cd25ccd33fe41c6e787 100644 (file)
@@ -1041,9 +1041,6 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
         * Some ASICs need to reserve a region of video memory to avoid access
         * from driver
         */
-       adev->mman.stolen_reserved_offset = 0;
-       adev->mman.stolen_reserved_size = 0;
-
        /*
         * TODO:
         * Currently there is a bug where some memory client outside
@@ -1060,8 +1057,8 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
                 */
 #ifdef CONFIG_X86
                if (amdgpu_sriov_vf(adev) && hypervisor_is_type(X86_HYPER_MS_HYPERV)) {
-                       adev->mman.stolen_reserved_offset = 0x500000;
-                       adev->mman.stolen_reserved_size = 0x200000;
+                       amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_STOLEN_RESERVED,
+                                                 0x500000, 0x200000, false);
                }
 #endif
                break;
index 256bf490ee15b65968182f3055df6ab00b05ff7a..30e2478cf474a3345678f92f9d85c1440515a2e5 100644 (file)
@@ -2214,11 +2214,7 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
                if (r)
                        return r;
 
-               r = amdgpu_bo_create_kernel_at(adev,
-                                              adev->mman.stolen_reserved_offset,
-                                              adev->mman.stolen_reserved_size,
-                                              &adev->mman.stolen_reserved_memory,
-                                              NULL);
+               r = amdgpu_ttm_mark_vram_reserved(adev, AMDGPU_RESV_STOLEN_RESERVED);
                if (r)
                        return r;
        } else {
@@ -2342,9 +2338,7 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
                                      NULL);
                amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory_extend, NULL,
                                      NULL);
-               if (adev->mman.stolen_reserved_size)
-                       amdgpu_bo_free_kernel(&adev->mman.stolen_reserved_memory,
-                                             NULL, NULL);
+               amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_RESERVED);
        }
        amdgpu_bo_free_kernel(&adev->mman.sdma_access_bo, NULL,
                                        &adev->mman.sdma_access_ptr);
index b62f9208eb9a7d518b153d5afc9ca957522c3e3e..63e8a7fe441d81deba20f1fc4ff9a205b1d732a0 100644 (file)
@@ -105,10 +105,6 @@ struct amdgpu_mman {
 
        bool                    keep_stolen_vga_memory;
 
-       struct amdgpu_bo        *stolen_reserved_memory;
-       uint64_t                stolen_reserved_offset;
-       uint64_t                stolen_reserved_size;
-
        /* fw reserved memory */
        struct amdgpu_bo                *fw_reserved_memory;
        struct amdgpu_bo                *fw_reserved_memory_extend;