aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
diff options
context:
space:
mode:
authorAndrey Grodzovsky <andrey.grodzovsky@amd.com>2018-04-06 15:54:10 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-05-15 14:43:16 -0400
commit6f752ec2c20c6a575da29d5b297980f376830e6b (patch)
tree4c3f79a2a3312faa3ca8df5329a3bd71429a85eb /drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
parentebdef28ebbcf767d9fa687acb1d02d97d834c628 (diff)
drm/amdgpu: Free VGA stolen memory as soon as possible.
Reserved VRAM is used to avoid overriding pre OS FB. Once our display stack takes over we don't need the reserved VRAM anymore. v2: Remove comment, we know actually why we need to reserve the stolen VRAM. Fix return type for amdgpu_ttm_late_init. v3: Return 0 in amdgpu_bo_late_init, rebase on changes to previous patch v4: rebase v5: For GMC9 reserve always just 9M and keep the stolem memory around until GART table curruption on S3 resume is resolved. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index 2be04acf4efb..29efaac6e3ed 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1517,13 +1517,17 @@ int amdgpu_ttm_init(struct amdgpu_device *adev)
1517 return 0; 1517 return 0;
1518} 1518}
1519 1519
1520void amdgpu_ttm_late_init(struct amdgpu_device *adev)
1521{
1522 amdgpu_bo_free_kernel(&adev->stolen_vga_memory, NULL, NULL);
1523}
1524
1520void amdgpu_ttm_fini(struct amdgpu_device *adev) 1525void amdgpu_ttm_fini(struct amdgpu_device *adev)
1521{ 1526{
1522 if (!adev->mman.initialized) 1527 if (!adev->mman.initialized)
1523 return; 1528 return;
1524 1529
1525 amdgpu_ttm_debugfs_fini(adev); 1530 amdgpu_ttm_debugfs_fini(adev);
1526 amdgpu_bo_free_kernel(&adev->stolen_vga_memory, NULL, NULL);
1527 amdgpu_ttm_fw_reserve_vram_fini(adev); 1531 amdgpu_ttm_fw_reserve_vram_fini(adev);
1528 if (adev->mman.aper_base_kaddr) 1532 if (adev->mman.aper_base_kaddr)
1529 iounmap(adev->mman.aper_base_kaddr); 1533 iounmap(adev->mman.aper_base_kaddr);