drm/amdgpu/gfx12: only need to remap KCQs when reset via MMIO

MES remaps kernels queues as part of it's reset sequence.

Reviewed-by: Jesse Zhang <jesse.zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Alex Deucher
2026-06-17 15:51:33 -04:00
parent 86a1b84d85
commit 974fa2e7dc
+13 -10
View File
@@ -5426,11 +5426,12 @@ static int gfx_v12_0_reset_kcq(struct amdgpu_ring *ring,
struct amdgpu_fence *timedout_fence)
{
struct amdgpu_device *adev = ring->adev;
bool use_mmio = true;
int r;
amdgpu_ring_reset_helper_begin(ring, timedout_fence);
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, true, 0);
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, use_mmio, 0);
if (r) {
dev_warn(adev->dev, "fail(%d) to reset kcq and try pipe reset\n", r);
r = gfx_v12_0_reset_compute_pipe(ring);
@@ -5438,15 +5439,17 @@ static int gfx_v12_0_reset_kcq(struct amdgpu_ring *ring,
return r;
}
r = gfx_v12_0_kcq_init_queue(ring, true);
if (r) {
dev_err(adev->dev, "failed to init kcq\n");
return r;
}
r = amdgpu_mes_map_legacy_queue(adev, ring, 0);
if (r) {
dev_err(adev->dev, "failed to remap kcq\n");
return r;
if (use_mmio) {
r = gfx_v12_0_kcq_init_queue(ring, true);
if (r) {
dev_err(adev->dev, "failed to init kcq\n");
return r;
}
r = amdgpu_mes_map_legacy_queue(adev, ring, 0);
if (r) {
dev_err(adev->dev, "failed to remap kcq\n");
return r;
}
}
return amdgpu_ring_reset_helper_end(ring, timedout_fence);