Commit af70a471 authored by Christian König's avatar Christian König Committed by Alex Deucher

drm/amdgpu: cleanup amdgpu_ib_ring_tests

Test only initialized rings, use the ring name instead of the index in the
error message and note on which device the error occured.
Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Reviewed-by: default avatarAndrey Grodzovsky <andrey.grodzovsky@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent dc9eeff8
...@@ -347,11 +347,11 @@ int amdgpu_ib_ring_tests(struct amdgpu_device *adev) ...@@ -347,11 +347,11 @@ int amdgpu_ib_ring_tests(struct amdgpu_device *adev)
tmo_gfx = 8 * AMDGPU_IB_TEST_TIMEOUT; tmo_gfx = 8 * AMDGPU_IB_TEST_TIMEOUT;
} }
for (i = 0; i < AMDGPU_MAX_RINGS; ++i) { for (i = 0; i < adev->num_rings; ++i) {
struct amdgpu_ring *ring = adev->rings[i]; struct amdgpu_ring *ring = adev->rings[i];
long tmo; long tmo;
if (!ring || !ring->sched.ready) if (!ring->sched.ready)
continue; continue;
/* skip IB tests for KIQ in general for the below reasons: /* skip IB tests for KIQ in general for the below reasons:
...@@ -374,20 +374,23 @@ int amdgpu_ib_ring_tests(struct amdgpu_device *adev) ...@@ -374,20 +374,23 @@ int amdgpu_ib_ring_tests(struct amdgpu_device *adev)
tmo = tmo_gfx; tmo = tmo_gfx;
r = amdgpu_ring_test_ib(ring, tmo); r = amdgpu_ring_test_ib(ring, tmo);
if (r) { if (!r) {
ring->sched.ready = false; DRM_DEV_DEBUG(adev->dev, "ib test on %s succeeded\n",
ring->name);
if (ring == &adev->gfx.gfx_ring[0]) { continue;
/* oh, oh, that's really bad */ }
DRM_ERROR("amdgpu: failed testing IB on GFX ring (%d).\n", r);
adev->accel_working = false; ring->sched.ready = false;
return r; DRM_DEV_ERROR(adev->dev, "IB test failed on %s (%d).\n",
ring->name, r);
} else {
/* still not good, but we can live with it */ if (ring == &adev->gfx.gfx_ring[0]) {
DRM_ERROR("amdgpu: failed testing IB on ring %d (%d).\n", i, r); /* oh, oh, that's really bad */
ret = r; adev->accel_working = false;
} return r;
} else {
ret = r;
} }
} }
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment