Skip to content

Commit 2d9bff2

Browse files
alexdeuchergregkh
authored andcommitted
drm/amdgpu/gfx12: adjust KGQ reset sequence
commit dfd64f6 upstream. 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 <timur.kristof@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit 0a6d6ed) Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent d9790cf commit 2d9bff2

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
@@ -5296,28 +5296,31 @@ static int gfx_v12_0_reset_kgq(struct amdgpu_ring *ring,
52965296
struct amdgpu_fence *timedout_fence)
52975297
{
52985298
struct amdgpu_device *adev = ring->adev;
5299+
bool use_mmio = false;
52995300
int r;
53005301

53015302
amdgpu_ring_reset_helper_begin(ring, timedout_fence);
53025303

5303-
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, false);
5304+
r = amdgpu_mes_reset_legacy_queue(ring->adev, ring, vmid, use_mmio);
53045305
if (r) {
53055306
dev_warn(adev->dev, "reset via MES failed and try pipe reset %d\n", r);
53065307
r = gfx_v12_reset_gfx_pipe(ring);
53075308
if (r)
53085309
return r;
53095310
}
53105311

5311-
r = gfx_v12_0_kgq_init_queue(ring, true);
5312-
if (r) {
5313-
dev_err(adev->dev, "failed to init kgq\n");
5314-
return r;
5315-
}
5312+
if (use_mmio) {
5313+
r = gfx_v12_0_kgq_init_queue(ring, true);
5314+
if (r) {
5315+
dev_err(adev->dev, "failed to init kgq\n");
5316+
return r;
5317+
}
53165318

5317-
r = amdgpu_mes_map_legacy_queue(adev, ring);
5318-
if (r) {
5319-
dev_err(adev->dev, "failed to remap kgq\n");
5320-
return r;
5319+
r = amdgpu_mes_map_legacy_queue(adev, ring);
5320+
if (r) {
5321+
dev_err(adev->dev, "failed to remap kgq\n");
5322+
return r;
5323+
}
53215324
}
53225325

53235326
return amdgpu_ring_reset_helper_end(ring, timedout_fence);

0 commit comments

Comments
 (0)