aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonk Liu <[email protected]>2016-06-01 17:37:21 -0400
committerAlex Deucher <[email protected]>2016-07-07 14:50:37 -0400
commitcc7d8c79792e626546ef7ef7086882b2c83b89e1 (patch)
tree14c85e16bd3c991011eec8b3a19c15fdbe6914bb
parent5dd0775e502b26b44e5bcb5f504a977a565f2f3e (diff)
drm/amdgpu: clear RB at ring init
This help fix reloading driver hang issue of SDMA ring. Signed-off-by: Monk Liu <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Reviewed-by: Christian König <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
index 870f9494252c..dc8a7bbedfea 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
+++ b/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,
(void **)&ring->ring);
+
+ memset((void *)ring->ring, 0, ring->ring_size);
+
amdgpu_bo_unreserve(ring->ring_obj);
if (r) {
dev_err(adev->dev, "(%d) ring map failed\n", r);