|
@@ -2755,8 +2755,7 @@ static int gfx_v7_0_cp_compute_resume(struct amdgpu_device *adev)
|
|
|
u64 wb_gpu_addr;
|
|
|
u32 *buf;
|
|
|
struct bonaire_mqd *mqd;
|
|
|
-
|
|
|
- gfx_v7_0_cp_compute_enable(adev, true);
|
|
|
+ struct amdgpu_ring *ring;
|
|
|
|
|
|
/* fix up chicken bits */
|
|
|
tmp = RREG32(mmCP_CPF_DEBUG);
|
|
@@ -2791,7 +2790,7 @@ static int gfx_v7_0_cp_compute_resume(struct amdgpu_device *adev)
|
|
|
|
|
|
/* init the queues. Just two for now. */
|
|
|
for (i = 0; i < adev->gfx.num_compute_rings; i++) {
|
|
|
- struct amdgpu_ring *ring = &adev->gfx.compute_ring[i];
|
|
|
+ ring = &adev->gfx.compute_ring[i];
|
|
|
|
|
|
if (ring->mqd_obj == NULL) {
|
|
|
r = amdgpu_bo_create(adev,
|
|
@@ -2970,6 +2969,13 @@ static int gfx_v7_0_cp_compute_resume(struct amdgpu_device *adev)
|
|
|
amdgpu_bo_unreserve(ring->mqd_obj);
|
|
|
|
|
|
ring->ready = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ gfx_v7_0_cp_compute_enable(adev, true);
|
|
|
+
|
|
|
+ for (i = 0; i < adev->gfx.num_compute_rings; i++) {
|
|
|
+ ring = &adev->gfx.compute_ring[i];
|
|
|
+
|
|
|
r = amdgpu_ring_test_ring(ring);
|
|
|
if (r)
|
|
|
ring->ready = false;
|