mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
drm/amdgpu: enable pdb0 for hibernation on SRIOV
When switching to new GPU index after hibernation and then resume, VRAM offset of each VRAM BO will be changed, and the cached gpu addresses needed to updated. This is to enable pdb0 and switch to use pdb0-based virtual gpu address by default in amdgpu_bo_create_reserved(). since the virtual addresses do not change, this can avoid the need to update all cached gpu addresses all over the codebase. Signed-off-by: Emily Deng <Emily.Deng@amd.com> Signed-off-by: Samuel Zhang <guoqing.zhang@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
18b66a6c2a
commit
2f405eb45c
@@ -1722,7 +1722,7 @@ static void gmc_v9_0_vram_gtt_location(struct amdgpu_device *adev,
|
||||
|
||||
/* add the xgmi offset of the physical node */
|
||||
base += adev->gmc.xgmi.physical_node_id * adev->gmc.xgmi.node_segment_size;
|
||||
if (adev->gmc.xgmi.connected_to_cpu) {
|
||||
if (amdgpu_gmc_is_pdb0_enabled(adev)) {
|
||||
amdgpu_gmc_sysvm_location(adev, mc);
|
||||
} else {
|
||||
amdgpu_gmc_vram_location(adev, mc, base);
|
||||
@@ -1837,7 +1837,7 @@ static int gmc_v9_0_gart_init(struct amdgpu_device *adev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (adev->gmc.xgmi.connected_to_cpu) {
|
||||
if (amdgpu_gmc_is_pdb0_enabled(adev)) {
|
||||
adev->gmc.vmid0_page_table_depth = 1;
|
||||
adev->gmc.vmid0_page_table_block_size = 12;
|
||||
} else {
|
||||
@@ -1863,7 +1863,7 @@ static int gmc_v9_0_gart_init(struct amdgpu_device *adev)
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
if (adev->gmc.xgmi.connected_to_cpu)
|
||||
if (amdgpu_gmc_is_pdb0_enabled(adev))
|
||||
r = amdgpu_gmc_pdb0_alloc(adev);
|
||||
}
|
||||
|
||||
@@ -2363,7 +2363,7 @@ static int gmc_v9_0_gart_enable(struct amdgpu_device *adev)
|
||||
{
|
||||
int r;
|
||||
|
||||
if (adev->gmc.xgmi.connected_to_cpu)
|
||||
if (amdgpu_gmc_is_pdb0_enabled(adev))
|
||||
amdgpu_gmc_init_pdb0(adev);
|
||||
|
||||
if (adev->gart.bo == NULL) {
|
||||
|
||||
Reference in New Issue
Block a user