Commit 29b4ac0e authored by YuBiao Wang's avatar YuBiao Wang Committed by Alex Deucher

drm/amdgpu: reset psp ring wptr during ring_create

[Why]
psp ring wptr is not initialized properly in ring_create,
which would lead to psp failure after several gpu reset.

[How]
Set ring_wptr to zero in psp_ring_create.
Signed-off-by: default avatarYuBiao Wang <YuBiao.Wang@amd.com>
Reviewed-by: default avatarHorace Chen <horace.chen@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 076f55a4
...@@ -461,6 +461,7 @@ static int psp_v11_0_ring_create(struct psp_context *psp, ...@@ -461,6 +461,7 @@ static int psp_v11_0_ring_create(struct psp_context *psp,
struct amdgpu_device *adev = psp->adev; struct amdgpu_device *adev = psp->adev;
if (amdgpu_sriov_vf(adev)) { if (amdgpu_sriov_vf(adev)) {
ring->ring_wptr = 0;
ret = psp_v11_0_ring_stop(psp, ring_type); ret = psp_v11_0_ring_stop(psp, ring_type);
if (ret) { if (ret) {
DRM_ERROR("psp_v11_0_ring_stop_sriov failed!\n"); DRM_ERROR("psp_v11_0_ring_stop_sriov failed!\n");
......
...@@ -227,6 +227,7 @@ static int psp_v3_1_ring_create(struct psp_context *psp, ...@@ -227,6 +227,7 @@ static int psp_v3_1_ring_create(struct psp_context *psp,
psp_v3_1_reroute_ih(psp); psp_v3_1_reroute_ih(psp);
if (amdgpu_sriov_vf(adev)) { if (amdgpu_sriov_vf(adev)) {
ring->ring_wptr = 0;
ret = psp_v3_1_ring_stop(psp, ring_type); ret = psp_v3_1_ring_stop(psp, ring_type);
if (ret) { if (ret) {
DRM_ERROR("psp_v3_1_ring_stop_sriov failed!\n"); DRM_ERROR("psp_v3_1_ring_stop_sriov failed!\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment