Commit a2f537e0 authored by Xiangliang Yu's avatar Xiangliang Yu Committed by Alex Deucher

drm/amdgpu/vce4: workaround VCE ring test slow issue

Add VCE ring test slow workaround for SRIOV.
Signed-off-by: default avatarFrank Min <Frank.Min@amd.com>
Signed-off-by: default avatarXiangliang Yu <Xiangliang.Yu@amd.com>
Acked-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 71f2af89
...@@ -955,7 +955,11 @@ int amdgpu_vce_ring_test_ring(struct amdgpu_ring *ring) ...@@ -955,7 +955,11 @@ int amdgpu_vce_ring_test_ring(struct amdgpu_ring *ring)
struct amdgpu_device *adev = ring->adev; struct amdgpu_device *adev = ring->adev;
uint32_t rptr = amdgpu_ring_get_rptr(ring); uint32_t rptr = amdgpu_ring_get_rptr(ring);
unsigned i; unsigned i;
int r; int r, timeout = adev->usec_timeout;
/* workaround VCE ring test slow issue for sriov*/
if (amdgpu_sriov_vf(adev))
timeout *= 10;
/* TODO: remove it if VCE can work for sriov */ /* TODO: remove it if VCE can work for sriov */
if (amdgpu_sriov_vf(adev)) if (amdgpu_sriov_vf(adev))
...@@ -970,13 +974,13 @@ int amdgpu_vce_ring_test_ring(struct amdgpu_ring *ring) ...@@ -970,13 +974,13 @@ int amdgpu_vce_ring_test_ring(struct amdgpu_ring *ring)
amdgpu_ring_write(ring, VCE_CMD_END); amdgpu_ring_write(ring, VCE_CMD_END);
amdgpu_ring_commit(ring); amdgpu_ring_commit(ring);
for (i = 0; i < adev->usec_timeout; i++) { for (i = 0; i < timeout; i++) {
if (amdgpu_ring_get_rptr(ring) != rptr) if (amdgpu_ring_get_rptr(ring) != rptr)
break; break;
DRM_UDELAY(1); DRM_UDELAY(1);
} }
if (i < adev->usec_timeout) { if (i < timeout) {
DRM_INFO("ring test on %d succeeded in %d usecs\n", DRM_INFO("ring test on %d succeeded in %d usecs\n",
ring->idx, i); ring->idx, i);
} else { } else {
......
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