]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/amdgpu: Fix uvd ib test timeout when use pre-allocated BO
authorxinhui pan <xinhui.pan@amd.com>
Thu, 16 Sep 2021 01:35:47 +0000 (09:35 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 23 Sep 2021 19:17:29 +0000 (15:17 -0400)
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 <xinhui.pan@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c

index b6e2abf26e18398c45087aa0b95a173c8265e221..8a26459bd80bced141448c90b9f12872fa3e7f08 100644 (file)
@@ -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;