From: xinhui pan Date: Thu, 16 Sep 2021 01:35:47 +0000 (+0800) Subject: drm/amdgpu: Fix uvd ib test timeout when use pre-allocated BO X-Git-Tag: v5.16-rc1~140^2~13^2~38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0a2267809fc96505aa91703640a121e84bcbdd81;p=thirdparty%2Fkernel%2Flinux.git drm/amdgpu: Fix uvd ib test timeout when use pre-allocated BO Now we use same BO for create/destroy msg. So destroy will wait for the fence returned from create to be signaled. The default timeout value in destroy is 10ms which is too short. Lets wait both fences with the specific timeout. Signed-off-by: xinhui pan Reviewed-by: Christian König Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c index b6e2abf26e183..8a26459bd80bc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c @@ -1336,10 +1336,17 @@ int amdgpu_uvd_ring_test_ib(struct amdgpu_ring *ring, long timeout) struct dma_fence *fence; long r; - r = amdgpu_uvd_get_create_msg(ring, 1, NULL); + r = amdgpu_uvd_get_create_msg(ring, 1, &fence); if (r) goto error; + r = dma_fence_wait_timeout(fence, false, timeout); + dma_fence_put(fence); + if (r == 0) + r = -ETIMEDOUT; + if (r < 0) + goto error; + r = amdgpu_uvd_get_destroy_msg(ring, 1, true, &fence); if (r) goto error;