[PATCH 29/95] drm/amdgpu: Enable UALink Manager when pod becomes active
Alex Deucher <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
From: Mukul Joshi <[email protected]> Enable the UALink manager when the pod state transitions to active. This would enable exchanging of memory across GPUs in a rack-scale setup. 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 | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c index e1e1757050152..e00686a902ef9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c @@ -656,8 +656,18 @@ static void activate_accelerator(struct amdgpu_device *adev) /* Enable incoming NPA address translation with NPA VMID */ r = psp_ual_set_npa_config(&adev->psp, adev->ualink.psp_if_ver, adev->vm_manager.npa_vmid, true); - if (!r) - adev->ualink.info->accel_state = AMDGPU_UALINK_ACCEL_STATE_READY; + if (r) { + dev_err(adev->dev, "Failed to set NPA config\n"); + return; + } + + r = amdgpu_ualink_manager_start(adev); + if (r) { + dev_err(adev->dev, "Failed to start UALink manager\n"); + return; + } + + adev->ualink.info->accel_state = AMDGPU_UALINK_ACCEL_STATE_READY; } static void deactivate_accelerator(struct amdgpu_device *adev) @@ -670,6 +680,8 @@ static void deactivate_accelerator(struct amdgpu_device *adev) adev->vm_manager.npa_vmid, false); /* ignore return value */ adev->ualink.info->accel_state = AMDGPU_UALINK_ACCEL_STATE_CONFIGURED; + + amdgpu_ualink_manager_stop(adev); } static void activate_local_vpod(struct amdgpu_device *adev) -- 2.55.0