[PATCH 1/3] drm/amdgpu/gfx9: reset cleanups
Alex Deucher
alexander.deucher at amd.com
Thu May 22 21:49:17 UTC 2025
Move the KIQ ring test into the kiq lock, add
the missing ring_commit.
Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
---
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index d377a7c57d5e1..505ae9b73932f 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -7178,10 +7178,8 @@ static int gfx_v9_0_reset_kgq(struct amdgpu_ring *ring, unsigned int vmid)
gfx_v9_0_ring_emit_wreg(kiq_ring,
SOC15_REG_OFFSET(GC, 0, mmCP_VMID_RESET), tmp);
amdgpu_ring_commit(kiq_ring);
-
- spin_unlock_irqrestore(&kiq->ring_lock, flags);
-
r = amdgpu_ring_test_ring(kiq_ring);
+ spin_unlock_irqrestore(&kiq->ring_lock, flags);
if (r)
return r;
@@ -7193,6 +7191,7 @@ static int gfx_v9_0_reset_kgq(struct amdgpu_ring *ring, unsigned int vmid)
SOC15_REG_OFFSET(GC, 0, mmCP_VMID_RESET), 0, 0xffff);
gfx_v9_0_ring_emit_wreg(ring,
SOC15_REG_OFFSET(GC, 0, mmCP_VMID_RESET), 0);
+ amdgpu_ring_commit(ring);
return amdgpu_ring_test_ring(ring);
}
@@ -7222,10 +7221,8 @@ static int gfx_v9_0_reset_kcq(struct amdgpu_ring *ring,
kiq->pmf->kiq_unmap_queues(kiq_ring, ring, RESET_QUEUES,
0, 0);
amdgpu_ring_commit(kiq_ring);
-
- spin_unlock_irqrestore(&kiq->ring_lock, flags);
-
r = amdgpu_ring_test_ring(kiq_ring);
+ spin_unlock_irqrestore(&kiq->ring_lock, flags);
if (r)
return r;
--
2.49.0
More information about the amd-gfx
mailing list