summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2025-06-16 17:45:05 -0400
committerAlex Deucher <alexander.deucher@amd.com>2025-06-30 11:58:22 -0400
commit38b20968f3d8a603a979ac50ff6cf3553e0b3daf (patch)
tree98ef3fcac37571f4ea54a32a324bb8c7ed9e9529 /drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
parent43ca5eb94b38c1b3c71bca36025050dfaab1ef33 (diff)
downloadlinux-next-38b20968f3d8a603a979ac50ff6cf3553e0b3daf.tar.gz
linux-next-38b20968f3d8a603a979ac50ff6cf3553e0b3daf.zip
drm/amdgpu: move scheduler wqueue handling into callbacks
Move the scheduler wqueue stopping and starting into the ring reset callbacks. On some IPs we have to reset an engine which may have multiple queues. Move the wqueue handling into the backend so we can handle them as needed based on the type of reset available. Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
index b00c63812899..99a080bad2a3 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
@@ -822,6 +822,8 @@ static int sdma_v7_0_reset_queue(struct amdgpu_ring *ring,
return -EINVAL;
}
+ drm_sched_wqueue_stop(&ring->sched);
+
r = amdgpu_mes_reset_legacy_queue(adev, ring, vmid, true);
if (r)
return r;
@@ -830,6 +832,7 @@ static int sdma_v7_0_reset_queue(struct amdgpu_ring *ring,
if (r)
return r;
amdgpu_fence_driver_force_completion(ring);
+ drm_sched_wqueue_start(&ring->sched);
return 0;
}