]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
drm/amdgpu/gfx9: Implement KGQ ring reset
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 20 Aug 2025 14:07:38 +0000 (10:07 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 5 Jan 2026 22:00:00 +0000 (17:00 -0500)
commit5ab75f98fb6314709a2eae5f8c8450276c94425f
tree28dbfe0eee7bb131ec47f38bff800c1b9f35984e
parent9596097be4bac5297acbbdb5f7c4ff2f4e42502e
drm/amdgpu/gfx9: Implement KGQ ring reset

GFX ring resets work differently on pre-GFX10 hardware since
there is no MQD managed by the scheduler.
For ring reset, you need issue the reset via CP_VMID_RESET
via KIQ or MMIO and submit the following to the gfx ring to
complete the reset:
1. EOP packet with EXEC bit set
2. WAIT_REG_MEM to wait for the fence
3. Clear CP_VMID_RESET to 0
4. EVENT_WRITE ENABLE_LEGACY_PIPELINE
5. EOP packet with EXEC bit set
6. WAIT_REG_MEM to wait for the fence
Once those commands have completed the reset should
be complete and the ring can accept new packets.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Tested-by: Jiqian Chen <Jiqian.Chen@amd.com> (v1)
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c