diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c index d869d058ef24..425413fcaf02 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | |||
@@ -2755,8 +2755,7 @@ static int gfx_v7_0_cp_compute_resume(struct amdgpu_device *adev) | |||
2755 | u64 wb_gpu_addr; | 2755 | u64 wb_gpu_addr; |
2756 | u32 *buf; | 2756 | u32 *buf; |
2757 | struct bonaire_mqd *mqd; | 2757 | struct bonaire_mqd *mqd; |
2758 | 2758 | struct amdgpu_ring *ring; | |
2759 | gfx_v7_0_cp_compute_enable(adev, true); | ||
2760 | 2759 | ||
2761 | /* fix up chicken bits */ | 2760 | /* fix up chicken bits */ |
2762 | tmp = RREG32(mmCP_CPF_DEBUG); | 2761 | tmp = RREG32(mmCP_CPF_DEBUG); |
@@ -2791,7 +2790,7 @@ static int gfx_v7_0_cp_compute_resume(struct amdgpu_device *adev) | |||
2791 | 2790 | ||
2792 | /* init the queues. Just two for now. */ | 2791 | /* init the queues. Just two for now. */ |
2793 | for (i = 0; i < adev->gfx.num_compute_rings; i++) { | 2792 | for (i = 0; i < adev->gfx.num_compute_rings; i++) { |
2794 | struct amdgpu_ring *ring = &adev->gfx.compute_ring[i]; | 2793 | ring = &adev->gfx.compute_ring[i]; |
2795 | 2794 | ||
2796 | if (ring->mqd_obj == NULL) { | 2795 | if (ring->mqd_obj == NULL) { |
2797 | r = amdgpu_bo_create(adev, | 2796 | r = amdgpu_bo_create(adev, |
@@ -2970,6 +2969,13 @@ static int gfx_v7_0_cp_compute_resume(struct amdgpu_device *adev) | |||
2970 | amdgpu_bo_unreserve(ring->mqd_obj); | 2969 | amdgpu_bo_unreserve(ring->mqd_obj); |
2971 | 2970 | ||
2972 | ring->ready = true; | 2971 | ring->ready = true; |
2972 | } | ||
2973 | |||
2974 | gfx_v7_0_cp_compute_enable(adev, true); | ||
2975 | |||
2976 | for (i = 0; i < adev->gfx.num_compute_rings; i++) { | ||
2977 | ring = &adev->gfx.compute_ring[i]; | ||
2978 | |||
2973 | r = amdgpu_ring_test_ring(ring); | 2979 | r = amdgpu_ring_test_ring(ring); |
2974 | if (r) | 2980 | if (r) |
2975 | ring->ready = false; | 2981 | ring->ready = false; |