diff options
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.patch | 107 |
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 + |