Skip to content

Commit 0a6d6ed

Browse files
committed
drm/amdgpu/gfx12: adjust KGQ reset sequence
Kernel gfx queues do not need to be reinitialized or remapped after a reset. Align with gfx11. v2: preserve init and remap for MMIO case. Reviewed-by: Timur Kristóf <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent b340ff2 commit 0a6d6ed

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5292,28 +5292,31 @@ static int gfx_v12_0_reset_kgq(struct amdgpu_ring *ring,
52925292
struct amdgpu_fence *timedout_fence)
52935293
{
52945294
struct amdgpu_device *adev = ring->adev;
5295+
bool use_mmio = false;
52955296
int r;
52965297

52975298
amdgpu_ring_reset_helper_begin(ring, timedout_fence);
52985299

5299-
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, false, 0);
5300+
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, use_mmio, 0);
53005301
if (r) {
53015302
dev_warn(adev->dev, "reset via MES failed and try pipe reset %d\n", r);
53025303
r = gfx_v12_reset_gfx_pipe(ring);
53035304
if (r)
53045305
return r;
53055306
}
53065307

5307-
r = gfx_v12_0_kgq_init_queue(ring, true);
5308-
if (r) {
5309-
dev_err(adev->dev, "failed to init kgq\n");
5310-
return r;
5311-
}
5308+
if (use_mmio) {
5309+
r = gfx_v12_0_kgq_init_queue(ring, true);
5310+
if (r) {
5311+
dev_err(adev->dev, "failed to init kgq\n");
5312+
return r;
5313+
}
53125314

5313-
r = amdgpu_mes_map_legacy_queue(adev, ring, 0);
5314-
if (r) {
5315-
dev_err(adev->dev, "failed to remap kgq\n");
5316-
return r;
5315+
r = amdgpu_mes_map_legacy_queue(adev, ring, 0);
5316+
if (r) {
5317+
dev_err(adev->dev, "failed to remap kgq\n");
5318+
return r;
5319+
}
53175320
}
53185321

53195322
return amdgpu_ring_reset_helper_end(ring, timedout_fence);

0 commit comments

Comments
 (0)