diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0804-dma-buf-return-index-of-the-first-signaled-fence.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0804-dma-buf-return-index-of-the-first-signaled-fence.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0804-dma-buf-return-index-of-the-first-signaled-fence.patch b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0804-dma-buf-return-index-of-the-first-signaled-fence.patch new file mode 100644 index 00000000..b0437de8 --- /dev/null +++ b/meta-amdfalconx86/recipes-kernel/linux/linux-yocto/0804-dma-buf-return-index-of-the-first-signaled-fence.patch @@ -0,0 +1,61 @@ +From fdeda884cd54908cd1d0d1e5c495e6261de9c50f Mon Sep 17 00:00:00 2001 +From: "monk.liu" <Monk.Liu@amd.com> +Date: Mon, 30 Nov 2015 16:19:34 +0800 +Subject: [PATCH 0804/1050] dma-buf: return index of the first signaled fence + drm/amdgpu: return first signaled fence index in status parameter +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Change-Id: I1b0d525f351015941a32206fec2d2f9199b8ef69 +Signed-off-by: monk.liu <Monk.Liu@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 +++- + drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 2 +- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +index d9fbfb5..272cc89 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +@@ -1024,6 +1024,7 @@ static int amdgpu_cs_wait_any_fence(struct amdgpu_device *adev, + { + unsigned long timeout = amdgpu_gem_timeout(wait->in.timeout_ns); + uint32_t fence_count = wait->in.fence_count; ++ uint32_t first = ~0; + struct fence **array; + unsigned i; + long r; +@@ -1049,13 +1050,14 @@ static int amdgpu_cs_wait_any_fence(struct amdgpu_device *adev, + } + } + +- r = fence_wait_any_timeout(array, fence_count, true, timeout); ++ r = fence_wait_any_timeout(array, fence_count, true, timeout, &first); + if (r < 0) + goto err_free_fence_array; + + out: + memset(wait, 0, sizeof(*wait)); + wait->out.status = (r > 0); ++ wait->out.first_signaled = first; + /* set return value 0 to indicate success */ + r = 0; + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c +index 8b88edb..fef2402 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c +@@ -359,7 +359,7 @@ int amdgpu_sa_bo_new(struct amdgpu_sa_manager *sa_manager, + if (count) { + spin_unlock(&sa_manager->wq.lock); + t = fence_wait_any_timeout(fences, count, false, +- MAX_SCHEDULE_TIMEOUT); ++ MAX_SCHEDULE_TIMEOUT, NULL); + r = (t > 0) ? 0 : t; + spin_lock(&sa_manager->wq.lock); + } else { +-- +1.9.1 + |