Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/amdgpu: compute ring test fail during S4 on CI

unhalt Instrction Fetch Unit after all rings are inited.

Signed-off-by: JimQu <Jim.Qu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org

authored by

jimqu and committed by
Alex Deucher
53960b4f 10ea9434

+9 -3
+9 -3
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
··· 2755 2755 u64 wb_gpu_addr; 2756 2756 u32 *buf; 2757 2757 struct bonaire_mqd *mqd; 2758 - 2759 - gfx_v7_0_cp_compute_enable(adev, true); 2758 + struct amdgpu_ring *ring; 2760 2759 2761 2760 /* fix up chicken bits */ 2762 2761 tmp = RREG32(mmCP_CPF_DEBUG); ··· 2790 2791 2791 2792 /* init the queues. Just two for now. */ 2792 2793 for (i = 0; i < adev->gfx.num_compute_rings; i++) { 2793 - struct amdgpu_ring *ring = &adev->gfx.compute_ring[i]; 2794 + ring = &adev->gfx.compute_ring[i]; 2794 2795 2795 2796 if (ring->mqd_obj == NULL) { 2796 2797 r = amdgpu_bo_create(adev, ··· 2969 2970 amdgpu_bo_unreserve(ring->mqd_obj); 2970 2971 2971 2972 ring->ready = true; 2973 + } 2974 + 2975 + gfx_v7_0_cp_compute_enable(adev, true); 2976 + 2977 + for (i = 0; i < adev->gfx.num_compute_rings; i++) { 2978 + ring = &adev->gfx.compute_ring[i]; 2979 + 2972 2980 r = amdgpu_ring_test_ring(ring); 2973 2981 if (r) 2974 2982 ring->ready = false;