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 fw_reserved reserve-region

Use reserve region helpers for initializing/reserving fw_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>

authored by

Lijo Lazar and committed by
Alex Deucher
b2155aae 272a9c8f

+10 -12
+4 -3
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
··· 1076 1076 return 0; 1077 1077 } 1078 1078 1079 - amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory, NULL, NULL); 1079 + amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_FW); 1080 1080 1081 1081 reserv_size = roundup(reserv_size, SZ_1M); 1082 1082 1083 - ret = amdgpu_bo_create_kernel_at(adev, reserv_addr, reserv_size, &adev->mman.fw_reserved_memory, NULL); 1083 + amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_FW, 1084 + reserv_addr, reserv_size, false); 1085 + ret = amdgpu_ttm_mark_vram_reserved(adev, AMDGPU_RESV_FW); 1084 1086 if (ret) { 1085 1087 dev_err(adev->dev, "reserve fw region failed(%d)!\n", ret); 1086 - amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory, NULL, NULL); 1087 1088 return ret; 1088 1089 } 1089 1090
+1 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
··· 5726 5726 5727 5727 static void amdgpu_ras_critical_region_init(struct amdgpu_device *adev) 5728 5728 { 5729 - amdgpu_ras_add_critical_region(adev, adev->mman.fw_reserved_memory); 5729 + amdgpu_ras_add_critical_region(adev, adev->mman.resv_region[AMDGPU_RESV_FW].bo); 5730 5730 } 5731 5731 5732 5732 static void amdgpu_ras_critical_region_fini(struct amdgpu_device *adev)
+5 -7
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
··· 1913 1913 ctx->init = PSP_MEM_TRAIN_RESERVE_SUCCESS; 1914 1914 } 1915 1915 1916 - ret = amdgpu_bo_create_kernel_at( 1917 - adev, adev->gmc.real_vram_size - reserve_size, reserve_size, 1918 - &adev->mman.fw_reserved_memory, NULL); 1916 + amdgpu_ttm_init_vram_resv(adev, AMDGPU_RESV_FW, 1917 + adev->gmc.real_vram_size - reserve_size, 1918 + reserve_size, false); 1919 + ret = amdgpu_ttm_mark_vram_reserved(adev, AMDGPU_RESV_FW); 1919 1920 if (ret) { 1920 1921 dev_err(adev->dev, "alloc tmr failed(%d)!\n", ret); 1921 - amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory, NULL, 1922 - NULL); 1923 1922 return ret; 1924 1923 } 1925 1924 ··· 2333 2334 amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_VGA); 2334 2335 amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_EXTENDED); 2335 2336 /* return the FW reserved memory back to VRAM */ 2336 - amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory, NULL, 2337 - NULL); 2337 + amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_FW); 2338 2338 amdgpu_bo_free_kernel(&adev->mman.fw_reserved_memory_extend, NULL, 2339 2339 NULL); 2340 2340 amdgpu_ttm_unmark_vram_reserved(adev, AMDGPU_RESV_STOLEN_RESERVED);
-1
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
··· 106 106 bool keep_stolen_vga_memory; 107 107 108 108 /* fw reserved memory */ 109 - struct amdgpu_bo *fw_reserved_memory; 110 109 struct amdgpu_bo *fw_reserved_memory_extend; 111 110 112 111 /* firmware VRAM reservation */