diff options
author | Jack Xiao <Jack.Xiao@amd.com> | 2020-03-27 16:43:28 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2022-05-04 10:43:51 -0400 |
commit | ea756bd5cc675b8dfb2be4069c620302200ecc2f (patch) | |
tree | 6ca9f7c56b9ac3b29edc9b90a54b9a19c4025ec6 /drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | |
parent | c8bb10572ca3a03aa0a11d0ba2d87c205f140883 (diff) |
drm/amdgpu/mes: implement resuming all gangs
Implement resuming all gangs.
Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c index e64f2a4b5a3b..b58af81f04a3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c @@ -471,3 +471,28 @@ int amdgpu_mes_suspend(struct amdgpu_device *adev) mutex_unlock(&adev->mes.mutex); return 0; } + +int amdgpu_mes_resume(struct amdgpu_device *adev) +{ + struct idr *idp; + struct amdgpu_mes_process *process; + struct amdgpu_mes_gang *gang; + struct mes_resume_gang_input input; + int r, pasid; + + mutex_lock(&adev->mes.mutex); + + idp = &adev->mes.pasid_idr; + + idr_for_each_entry(idp, process, pasid) { + list_for_each_entry(gang, &process->gang_list, list) { + r = adev->mes.funcs->resume_gang(&adev->mes, &input); + if (r) + DRM_ERROR("failed to resume pasid %d gangid %d", + pasid, gang->gang_id); + } + } + + mutex_unlock(&adev->mes.mutex); + return 0; +} |