[PATCH 17/95] drm/amdgpu: Enable/disable NPA address translation using PSP
Alex Deucher <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
From: Felix Kuehling <[email protected]> Enable or disable NPA address translation using PSP during accelerator state transitions in and out of READY state. Signed-off-by: Felix Kuehling <[email protected]> Reviewed-by: Mukul Joshi <[email protected]> Signed-off-by: Alex Deucher <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c index 134ff3d86126b..ca4b34ef1a49c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c @@ -639,10 +639,16 @@ static bool check_local_vpod_integrity(struct amdgpu_device *adev) static void activate_accelerator(struct amdgpu_device *adev) { + int r; + if (adev->ualink.info->accel_state >= AMDGPU_UALINK_ACCEL_STATE_READY) return; - adev->ualink.info->accel_state = AMDGPU_UALINK_ACCEL_STATE_READY; + /* Enable incoming NPA address translation with VMID15 */ + r = psp_ual_set_npa_config(&adev->psp, adev->ualink.psp_if_ver, + 15, true); + if (!r) + adev->ualink.info->accel_state = AMDGPU_UALINK_ACCEL_STATE_READY; } static void deactivate_accelerator(struct amdgpu_device *adev) @@ -650,6 +656,10 @@ 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 */ + psp_ual_set_npa_config(&adev->psp, adev->ualink.psp_if_ver, + 15, false); + /* ignore return value */ adev->ualink.info->accel_state = AMDGPU_UALINK_ACCEL_STATE_CONFIGURED; } -- 2.55.0