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

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_psp.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h

index ee6c4b724146029474e461889893459232b5b569..f0e4d020f4c7a862d936865db92677214e7920e0 100644 (file)
@@ -1090,11 +1090,11 @@ int psp_update_fw_reservation(struct psp_context *psp)
 
        reserv_size_ext = roundup(reserv_size_ext, SZ_1M);
 
-       ret = amdgpu_bo_create_kernel_at(adev, reserv_addr_ext, reserv_size_ext,
-                                        &adev->mman.fw_reserved_memory_extend, NULL);
+       amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_FW_EXTEND,
+                                 reserv_addr_ext, reserv_size_ext, false);
+       ret = amdgpu_ttm_mark_vram_reserved(adev, AMDGPU_RESV_FW_EXTEND);
        if (ret) {
                dev_err(adev->dev, "reserve extend fw region failed(%d)!\n", ret);
-               amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory_extend, NULL, NULL);
                return ret;
        }
 
index 8758ec6f7809c1bea47f8b819134af9e325a29ff..f0284846b2d3895143e49bad7b40aef0e322ee54 100644 (file)
@@ -2334,8 +2334,7 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
                amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_EXTENDED);
                /* return the FW reserved memory back to VRAM */
                amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_FW);
-               amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory_extend, NULL,
-                                     NULL);
+               amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_FW_EXTEND);
                amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_RESERVED);
        }
        amdgpu_bo_free_kernel(&adev->mman.sdma_access_bo, NULL,
index a03620d50838f7efa3108db7e84eaa4f7a70200e..29aae20abdc12352048c589405e81c76d10bb702 100644 (file)
@@ -105,9 +105,6 @@ struct amdgpu_mman {
 
        bool                    keep_stolen_vga_memory;
 
-       /* fw reserved memory */
-       struct amdgpu_bo                *fw_reserved_memory_extend;
-
        /* firmware VRAM reservation */
        u64             fw_vram_usage_start_offset;
        u64             fw_vram_usage_size;