aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0355-drm-amdgpu-cleanup-the-sync-code.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0355-drm-amdgpu-cleanup-the-sync-code.patch')
-rw-r--r--common/recipes-kernel/linux/files/0355-drm-amdgpu-cleanup-the-sync-code.patch107
1 files changed, 107 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0355-drm-amdgpu-cleanup-the-sync-code.patch b/common/recipes-kernel/linux/files/0355-drm-amdgpu-cleanup-the-sync-code.patch
new file mode 100644
index 00000000..04ab79bd
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0355-drm-amdgpu-cleanup-the-sync-code.patch
@@ -0,0 +1,107 @@
+From ff04e9638d871d6353ffc46c35d80b64b0b2dd15 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Tue, 16 Feb 2016 16:23:02 +0100
+Subject: [PATCH 0355/1110] drm/amdgpu: cleanup the sync code
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+No need for two functions doing the same, remove one and
+add comments what those functions actually do.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c | 48 ++++++++++++++++++++------------
+ 1 file changed, 30 insertions(+), 18 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
+index c15be00..87690cc 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c
+@@ -50,6 +50,14 @@ void amdgpu_sync_create(struct amdgpu_sync *sync)
+ sync->last_vm_update = NULL;
+ }
+
++/**
++ * amdgpu_sync_same_dev - test if fence belong to us
++ *
++ * @adev: amdgpu device to use for the test
++ * @f: fence to test
++ *
++ * Test if the fence was issued by us.
++ */
+ static bool amdgpu_sync_same_dev(struct amdgpu_device *adev, struct fence *f)
+ {
+ struct amdgpu_fence *a_fence = to_amdgpu_fence(f);
+@@ -68,17 +76,33 @@ static bool amdgpu_sync_same_dev(struct amdgpu_device *adev, struct fence *f)
+ return false;
+ }
+
+-static bool amdgpu_sync_test_owner(struct fence *f, void *owner)
++/**
++ * amdgpu_sync_get_owner - extract the owner of a fence
++ *
++ * @fence: fence get the owner from
++ *
++ * Extract who originally created the fence.
++ */
++static void *amdgpu_sync_get_owner(struct fence *f)
+ {
+ struct amdgpu_fence *a_fence = to_amdgpu_fence(f);
+ struct amd_sched_fence *s_fence = to_amd_sched_fence(f);
++
+ if (s_fence)
+- return s_fence->owner == owner;
+- if (a_fence)
+- return a_fence->owner == owner;
+- return false;
++ return s_fence->owner;
++ else if (a_fence)
++ return a_fence->owner;
++ return AMDGPU_FENCE_OWNER_UNDEFINED;
+ }
+
++/**
++ * amdgpu_sync_keep_later - Keep the later fence
++ *
++ * @keep: existing fence to test
++ * @fence: new fence
++ *
++ * Either keep the existing fence or the new one, depending which one is later.
++ */
+ static void amdgpu_sync_keep_later(struct fence **keep, struct fence *fence)
+ {
+ if (*keep && fence_is_later(*keep, fence))
+@@ -104,7 +128,7 @@ int amdgpu_sync_fence(struct amdgpu_device *adev, struct amdgpu_sync *sync,
+ return 0;
+
+ if (amdgpu_sync_same_dev(adev, f) &&
+- amdgpu_sync_test_owner(f, AMDGPU_FENCE_OWNER_VM))
++ amdgpu_sync_get_owner(f) == AMDGPU_FENCE_OWNER_VM)
+ amdgpu_sync_keep_later(&sync->last_vm_update, f);
+
+ hash_for_each_possible(sync->fences, e, node, f->context) {
+@@ -124,18 +148,6 @@ int amdgpu_sync_fence(struct amdgpu_device *adev, struct amdgpu_sync *sync,
+ return 0;
+ }
+
+-static void *amdgpu_sync_get_owner(struct fence *f)
+-{
+- struct amdgpu_fence *a_fence = to_amdgpu_fence(f);
+- struct amd_sched_fence *s_fence = to_amd_sched_fence(f);
+-
+- if (s_fence)
+- return s_fence->owner;
+- else if (a_fence)
+- return a_fence->owner;
+- return AMDGPU_FENCE_OWNER_UNDEFINED;
+-}
+-
+ /**
+ * amdgpu_sync_resv - sync to a reservation object
+ *
+--
+2.7.4
+