|
@@ -1987,6 +1987,16 @@ retry:
|
|
|
/* restore scratch */
|
|
|
amdgpu_atombios_scratch_regs_restore(adev);
|
|
|
if (!r) {
|
|
|
+ r = amdgpu_ib_ring_tests(adev);
|
|
|
+ if (r) {
|
|
|
+ dev_err(adev->dev, "ib ring test failed (%d).\n", r);
|
|
|
+ if (saved) {
|
|
|
+ saved = false;
|
|
|
+ r = amdgpu_suspend(adev);
|
|
|
+ goto retry;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
|
|
|
struct amdgpu_ring *ring = adev->rings[i];
|
|
|
if (!ring)
|
|
@@ -1997,16 +2007,6 @@ retry:
|
|
|
ring_sizes[i] = 0;
|
|
|
ring_data[i] = NULL;
|
|
|
}
|
|
|
-
|
|
|
- r = amdgpu_ib_ring_tests(adev);
|
|
|
- if (r) {
|
|
|
- dev_err(adev->dev, "ib ring test failed (%d).\n", r);
|
|
|
- if (saved) {
|
|
|
- saved = false;
|
|
|
- r = amdgpu_suspend(adev);
|
|
|
- goto retry;
|
|
|
- }
|
|
|
- }
|
|
|
} else {
|
|
|
dev_err(adev->dev, "asic resume failed (%d).\n", r);
|
|
|
for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
|