[PATCH 28/95] drm/amdgpu: Use reserved VMID for NPA VM
Alex Deucher <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
From: Mukul Joshi <[email protected]> Map NPA VM to use the reserved VMID. Signed-off-by: Mukul Joshi <[email protected]> Reviewed-by: Felix Kuehling <[email protected]> Signed-off-by: Alex Deucher <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c index db9dce8fa8708..e1e1757050152 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c @@ -653,9 +653,9 @@ static void activate_accelerator(struct amdgpu_device *adev) if (adev->ualink.info->accel_state >= AMDGPU_UALINK_ACCEL_STATE_READY) return; - /* Enable incoming NPA address translation with VMID15 */ + /* Enable incoming NPA address translation with NPA VMID */ r = psp_ual_set_npa_config(&adev->psp, adev->ualink.psp_if_ver, - 15, true); + adev->vm_manager.npa_vmid, true); if (!r) adev->ualink.info->accel_state = AMDGPU_UALINK_ACCEL_STATE_READY; } @@ -665,9 +665,9 @@ static void deactivate_accelerator(struct amdgpu_device *adev) if (adev->ualink.info->accel_state < AMDGPU_UALINK_ACCEL_STATE_READY) return; - /* Disable incoming NPA address translation with VMID15 */ + /* Disable incoming NPA address translation with NPA VMID */ psp_ual_set_npa_config(&adev->psp, adev->ualink.psp_if_ver, - 15, false); + adev->vm_manager.npa_vmid, false); /* ignore return value */ adev->ualink.info->accel_state = AMDGPU_UALINK_ACCEL_STATE_CONFIGURED; } @@ -1127,6 +1127,10 @@ int amdgpu_ualink_manager_start(struct amdgpu_device *adev) goto uninit_vm; } + /* Map this VM to NPA VMID */ + adev->mmhub.funcs->setup_vm_pt_regs(adev, adev->vm_manager.npa_vmid, + amdgpu_gmc_pd_addr(adev->ualink.npa_vm.root.bo)); + xa_init_flags(&adev->ualink.exp_xa, XA_FLAGS_LOCK_BH); xa_init_flags(&adev->ualink.imp_xa, XA_FLAGS_LOCK_BH); xa_init_flags(&adev->ualink.handle_invalid_xa, XA_FLAGS_LOCK_BH); @@ -1153,6 +1157,7 @@ void amdgpu_ualink_manager_stop(struct amdgpu_device *adev) { int i; + adev->mmhub.funcs->setup_vm_pt_regs(adev, adev->vm_manager.npa_vmid, 0); amdgpu_ualink_npa_mm_fini(adev); xa_destroy(&adev->ualink.exp_xa); -- 2.55.0