diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0247-drm-amdgpu-drop-a-dummy-wakeup-scheduler.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0247-drm-amdgpu-drop-a-dummy-wakeup-scheduler.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0247-drm-amdgpu-drop-a-dummy-wakeup-scheduler.patch b/common/recipes-kernel/linux/files/0247-drm-amdgpu-drop-a-dummy-wakeup-scheduler.patch new file mode 100644 index 00000000..3d0a0a59 --- /dev/null +++ b/common/recipes-kernel/linux/files/0247-drm-amdgpu-drop-a-dummy-wakeup-scheduler.patch @@ -0,0 +1,50 @@ +From e3340ebb98eae7e066b7eea99edf8c8f9713faa8 Mon Sep 17 00:00:00 2001 +From: Monk Liu <Monk.Liu@amd.com> +Date: Tue, 26 Jan 2016 14:59:57 +0800 +Subject: [PATCH 0247/1110] drm/amdgpu: drop a dummy wakeup scheduler +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +since the dependency job is also scheduled by the same +scheduler with the job depended on it, no need to +call wake up scheduler when the dep is scheduled. + +Signed-off-by: Monk Liu <Monk.Liu@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +index 8b2becd..a5ff945 100644 +--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c ++++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +@@ -229,6 +229,14 @@ static void amd_sched_entity_wakeup(struct fence *f, struct fence_cb *cb) + amd_sched_wakeup(entity->sched); + } + ++static void amd_sched_entity_clear_dep(struct fence *f, struct fence_cb *cb) ++{ ++ struct amd_sched_entity *entity = ++ container_of(cb, struct amd_sched_entity, cb); ++ entity->dependency = NULL; ++ fence_put(f); ++} ++ + static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity) + { + struct amd_gpu_scheduler *sched = entity->sched; +@@ -251,7 +259,7 @@ static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity) + } + + /* Wait for fence to be scheduled */ +- entity->cb.func = amd_sched_entity_wakeup; ++ entity->cb.func = amd_sched_entity_clear_dep; + list_add_tail(&entity->cb.node, &s_fence->scheduled_cb); + return true; + } +-- +2.7.4 + |