mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 14:51:51 -04:00
drm/amdgpu/gmc12: Set up pdb0 for vmid0 page table
Alloc, Init and free pdb0 for vmid0 page table that is used for fb translation on A + A platform Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com> Reviewed-by: Le Ma <le.ma@amd.com> Reviewed-by: Feifei Xu <Feifei.Xu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
5aca9e0e82
commit
8392ca2d7e
@@ -783,7 +783,14 @@ static int gmc_v12_0_gart_init(struct amdgpu_device *adev)
|
||||
AMDGPU_PTE_EXECUTABLE |
|
||||
AMDGPU_PTE_IS_PTE;
|
||||
|
||||
return amdgpu_gart_table_vram_alloc(adev);
|
||||
r = amdgpu_gart_table_vram_alloc(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
||||
if (amdgpu_gmc_is_pdb0_enabled(adev))
|
||||
r = amdgpu_gmc_pdb0_alloc(adev);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
static int gmc_v12_0_sw_init(struct amdgpu_ip_block *ip_block)
|
||||
@@ -955,6 +962,7 @@ static int gmc_v12_0_sw_fini(struct amdgpu_ip_block *ip_block)
|
||||
amdgpu_vm_manager_fini(adev);
|
||||
gmc_v12_0_gart_fini(adev);
|
||||
amdgpu_gem_force_release(adev);
|
||||
amdgpu_bo_free_kernel(&adev->gmc.pdb0_bo, NULL, &adev->gmc.ptr_pdb0);
|
||||
amdgpu_bo_fini(adev);
|
||||
|
||||
return 0;
|
||||
@@ -974,6 +982,9 @@ static int gmc_v12_0_gart_enable(struct amdgpu_device *adev)
|
||||
int r;
|
||||
bool value;
|
||||
|
||||
if (adev->gmc.xgmi.connected_to_cpu)
|
||||
amdgpu_gmc_init_pdb0(adev);
|
||||
|
||||
if (adev->gart.bo == NULL) {
|
||||
dev_err(adev->dev, "No VRAM object for PCIE GART.\n");
|
||||
return -EINVAL;
|
||||
@@ -995,6 +1006,7 @@ static int gmc_v12_0_gart_enable(struct amdgpu_device *adev)
|
||||
|
||||
drm_info(adev_to_drm(adev), "PCIE GART of %uM enabled (table at 0x%016llX).\n",
|
||||
(unsigned)(adev->gmc.gart_size >> 20),
|
||||
(adev->gmc.pdb0_bo) ? (unsigned long long)amdgpu_bo_gpu_offset(adev->gmc.pdb0_bo) :
|
||||
(unsigned long long)amdgpu_bo_gpu_offset(adev->gart.bo));
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user