Improve SDMA queue reset for SDMA v4.4.2, v5.0, v5.2
and also moves some functionality from backend-specific
code to common code in the amdgpu_sdma.c file.
This prepares for implementing SDMA recovery
on more generations, as the same logic can be shared
with all SDMA HW generations that don't use the MES.
The actual recovery implementation for various
older SDMA versions will come in subsequent patch series
after this one is accepted.
Changes in v2:
* Added a fix for an issue in SDMA v4.4.2
* Further simplified some code
Changes in v3:
* Fixed typo (wrong scheduler for page ring)
Changes in v4:
* Added helper function to clear ring contents and pointers
Timur Kristóf (9):
drm/amdgpu/sdma: Remove unimplemented soft_reset() for SDMA and SI DMA
drm/amdgpu/sdma: Remove superfluous rlc_resume and rlc_stop functions
drm/amdgpu/sdma: Fix executing duplicate commands after recovery on
SDMA v4.4.2
drm/amdgpu/sdma: Remove unnecessary guilty tracking of SDMA queues
drm/amdgpu: Add amdgpu_ring_clear_ring_and_ptrs()
drm/amdgpu/sdma: Clear SDMA rings after reset before starting them
drm/amdgpu/sdma: Move SDMA v5.x queue reset to common code
drm/amdgpu/sdma: Always handle kernel queues in
amdgpu_sdma_reset_engine()
drm/amdgpu/sdma: Use common SDMA legacy queue reset on SDMA v4.4.2
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 2 -
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 21 ++-
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 102 +++++++----
drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h | 11 +-
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 32 ----
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 30 ----
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 38 +----
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 40 +----
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 158 ++----------------
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 60 +------
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 52 +-----
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 27 ---
drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c | 27 ---
drivers/gpu/drm/amd/amdgpu/si_dma.c | 7 -
.../drm/amd/amdkfd/kfd_device_queue_manager.c | 2 +-
15 files changed, 121 insertions(+), 488 deletions(-)
--
2.55.0