Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Lijo Lazar and committed by
Alex Deucher
9bb16dab c9042a4d

+10 -12
+5 -3
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
··· 1099 1099 size = 0; 1100 1100 1101 1101 if (size > AMDGPU_VBIOS_VGA_ALLOCATION) { 1102 - adev->mman.stolen_vga_size = AMDGPU_VBIOS_VGA_ALLOCATION; 1103 - adev->mman.stolen_extended_size = size - adev->mman.stolen_vga_size; 1102 + amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_STOLEN_VGA, 1103 + 0, AMDGPU_VBIOS_VGA_ALLOCATION, false); 1104 + adev->mman.stolen_extended_size = size - AMDGPU_VBIOS_VGA_ALLOCATION; 1104 1105 } else { 1105 - adev->mman.stolen_vga_size = size; 1106 + amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_STOLEN_VGA, 1107 + 0, size, false); 1106 1108 adev->mman.stolen_extended_size = 0; 1107 1109 } 1108 1110 }
+4 -6
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
··· 2206 2206 * and driver. 2207 2207 */ 2208 2208 if (!adev->gmc.is_app_apu) { 2209 - r = amdgpu_bo_create_kernel_at(adev, 0, 2210 - adev->mman.stolen_vga_size, 2211 - &adev->mman.stolen_vga_memory, 2212 - NULL); 2209 + r = amdgpu_ttm_mark_vram_reserved(adev, AMDGPU_RESV_STOLEN_VGA); 2213 2210 if (r) 2214 2211 return r; 2215 2212 2216 - r = amdgpu_bo_create_kernel_at(adev, adev->mman.stolen_vga_size, 2213 + r = amdgpu_bo_create_kernel_at(adev, 2214 + adev->mman.resv_region[AMDGPU_RESV_STOLEN_VGA].size, 2217 2215 adev->mman.stolen_extended_size, 2218 2216 &adev->mman.stolen_extended_memory, 2219 2217 NULL); ··· 2340 2342 amdgpu_ttm_training_reserve_vram_fini(adev); 2341 2343 /* return the stolen vga memory back to VRAM */ 2342 2344 if (!adev->gmc.is_app_apu) { 2343 - amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, NULL, NULL); 2345 + amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_VGA); 2344 2346 amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL); 2345 2347 /* return the FW reserved memory back to VRAM */ 2346 2348 amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory, NULL,
-2
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
··· 103 103 struct amdgpu_gtt_mgr gtt_mgr; 104 104 struct ttm_resource_manager preempt_mgr; 105 105 106 - uint64_t stolen_vga_size; 107 - struct amdgpu_bo *stolen_vga_memory; 108 106 uint64_t stolen_extended_size; 109 107 struct amdgpu_bo *stolen_extended_memory; 110 108 bool keep_stolen_vga_memory;
+1 -1
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
··· 11199 11199 if (!adev->in_suspend) { 11200 11200 /* return the stolen vga memory back to VRAM */ 11201 11201 if (!adev->mman.keep_stolen_vga_memory) 11202 - amdgpu_bo_free_kernel(&adev->mman.stolen_vga_memory, NULL, NULL); 11202 + amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_VGA); 11203 11203 amdgpu_bo_free_kernel(&adev->mman.stolen_extended_memory, NULL, NULL); 11204 11204 } 11205 11205