summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLijo Lazar <lijo.lazar@amd.com>2026-03-25 14:30:31 +0300
committerAlex Deucher <alexander.deucher@amd.com>2026-04-03 20:49:36 +0300
commit9bb16dabb09116d3308772569e850477f2d803b5 (patch)
tree30d301ea02c9e50992faf8fc1d265d5d66e91420
parentc9042a4dd6ac311281fc2d95d0d9f8e3278608c5 (diff)
downloadlinux-9bb16dabb09116d3308772569e850477f2d803b5.tar.xz
drm/amdgpu: Add stolen vga reserve-region
Use reserve region helpers for initializing/reserving stolen vga 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>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c8
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h2
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c2
4 files changed, 10 insertions, 12 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
index ec74f3971732..2d7e5c137902 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
@@ -1099,10 +1099,12 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)
size = 0;
if (size > AMDGPU_VBIOS_VGA_ALLOCATION) {
- adev->mman.stolen_vga_size = AMDGPU_VBIOS_VGA_ALLOCATION;
- adev->mman.stolen_extended_size = size - adev->mman.stolen_vga_size;
+ amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_STOLEN_VGA,
+ 0, AMDGPU_VBIOS_VGA_ALLOCATION, false);
+ adev->mman.stolen_extended_size = size - AMDGPU_VBIOS_VGA_ALLOCATION;
} else {
- adev->mman.stolen_vga_size = size;
+ amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_STOLEN_VGA,
+ 0, size, false);
adev->mman.stolen_extended_size = 0;
}
}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 8f0b13a39b61..57804625702f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -2206,14 +2206,12 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
* and driver.
*/
if (!adev->gmc.is_app_apu) {
- r = amdgpu_bo_create_kernel_at(adev, 0,
- adev->mman.stolen_vga_size,
- &adev->mman.stolen_vga_memory,
- NULL);
+ r = amdgpu_ttm_mark_vram_reserved(adev, AMDGPU_RESV_STOLEN_VGA);
if (r)
return r;
- r = amdgpu_bo_create_kernel_at(adev, adev->mman.stolen_vga_size,
+ r = amdgpu_bo_create_kernel_at(adev,
+ adev->mman.resv_region[AMDGPU_RESV_STOLEN_VGA].size,
adev->mman.stolen_extended_size,
&adev->mman.stolen_extended_memory,
NULL);
@@ -2342,7 +2340,7 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev)
amdgpu_ttm_training_reserve_vram_fini(adev);
/* return the stolen vga memory back to VRAM */
if (!adev->gmc.is_app_apu) {
- amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, NULL, NULL);
+ amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_VGA);
amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL);
/* return the FW reserved memory back to VRAM */
amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory, NULL,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
index 7c49fe56a1df..826db85d133e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
@@ -103,8 +103,6 @@ struct amdgpu_mman {
struct amdgpu_gtt_mgr gtt_mgr;
struct ttm_resource_manager preempt_mgr;
- uint64_t stolen_vga_size;
- struct amdgpu_bo *stolen_vga_memory;
uint64_t stolen_extended_size;
struct amdgpu_bo *stolen_extended_memory;
bool keep_stolen_vga_memory;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index 824ee93c9911..19d8a5fc5def 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -11199,7 +11199,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
if (!adev->in_suspend) {
/* return the stolen vga memory back to VRAM */
if (!adev->mman.keep_stolen_vga_memory)
- amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, NULL, NULL);
+ amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_VGA);
amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL);
}