summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
diff options
context:
space:
mode:
authorTimur Kristóf <timur.kristof@gmail.com>2026-06-17 21:14:16 +0200
committerAlex Deucher <alexander.deucher@amd.com>2026-07-01 11:11:52 -0400
commit947e46eb2fb9f66da0d659c7e4f28fc18e05ada2 (patch)
treea89ff6bc9be56ba3ab99a8435ebe1b08fc633a3e /drivers/gpu/drm/amd/amdgpu/tonga_ih.c
parent64e31a35eb1a4e21932f8fe658f2a7a9de6fbdb0 (diff)
downloadlinux-next-947e46eb2fb9f66da0d659c7e4f28fc18e05ada2.tar.gz
linux-next-947e46eb2fb9f66da0d659c7e4f28fc18e05ada2.zip
drm/amdgpu: Delete check_soft_reset() from amd_ip_funcs
This function is not called from anywhere anymore and every implementation was bogus. Some implementations checked busy flags of the IP blocks, which are not really indicative of whether the block is hung and needs to be reset. For example the blocks could be busy just normally executing submissions, and not need to be reset. Other implementations checked IB tests, which is actually more useful, but could still just indicate that an IP block is executing submissions normally. It is also unnecessary because the GPU recovery code path already knows which ring is hung so we know exactly what we need to reset. Just delete check_soft_reset() entirely. Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/tonga_ih.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/tonga_ih.c20
1 files changed, 0 insertions, 20 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
index ee8038df17e3..671f5bf18a3a 100644
--- a/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
+++ b/drivers/gpu/drm/amd/amdgpu/tonga_ih.c
@@ -390,25 +390,6 @@ static int tonga_ih_wait_for_idle(struct amdgpu_ip_block *ip_block)
return -ETIMEDOUT;
}
-static bool tonga_ih_check_soft_reset(struct amdgpu_ip_block *ip_block)
-{
- struct amdgpu_device *adev = ip_block->adev;
- u32 srbm_soft_reset = 0;
- u32 tmp = RREG32(mmSRBM_STATUS);
-
- if (tmp & SRBM_STATUS__IH_BUSY_MASK)
- srbm_soft_reset = REG_SET_FIELD(srbm_soft_reset, SRBM_SOFT_RESET,
- SOFT_RESET_IH, 1);
-
- if (srbm_soft_reset) {
- adev->irq.srbm_soft_reset = srbm_soft_reset;
- return true;
- } else {
- adev->irq.srbm_soft_reset = 0;
- return false;
- }
-}
-
static int tonga_ih_pre_soft_reset(struct amdgpu_ip_block *ip_block)
{
if (!ip_block->adev->irq.srbm_soft_reset)
@@ -481,7 +462,6 @@ static const struct amd_ip_funcs tonga_ih_ip_funcs = {
.resume = tonga_ih_resume,
.is_idle = tonga_ih_is_idle,
.wait_for_idle = tonga_ih_wait_for_idle,
- .check_soft_reset = tonga_ih_check_soft_reset,
.pre_soft_reset = tonga_ih_pre_soft_reset,
.soft_reset = tonga_ih_soft_reset,
.post_soft_reset = tonga_ih_post_soft_reset,