Эх сурвалжийг харах

drm/amdgpu: clear RB at ring init

This help fix reloading driver hang issue of SDMA
ring.

Signed-off-by: Monk Liu <Monk.Liu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Monk Liu 9 жил өмнө
parent
commit
cc7d8c7979

+ 3 - 0
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c

@@ -310,6 +310,9 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
 		}
 		}
 		r = amdgpu_bo_kmap(ring->ring_obj,
 		r = amdgpu_bo_kmap(ring->ring_obj,
 				       (void **)&ring->ring);
 				       (void **)&ring->ring);
+
+		memset((void *)ring->ring, 0, ring->ring_size);
+
 		amdgpu_bo_unreserve(ring->ring_obj);
 		amdgpu_bo_unreserve(ring->ring_obj);
 		if (r) {
 		if (r) {
 			dev_err(adev->dev, "(%d) ring map failed\n", r);
 			dev_err(adev->dev, "(%d) ring map failed\n", r);