aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMonk Liu <Monk.Liu@amd.com>2016-01-26 01:59:57 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-02-10 14:17:02 -0500
commit777dbd458c89d4ca74a659f85ffb5bc817f29a35 (patch)
tree3b943d22475373ffee76b28566254824a981bd32
parentf2802faa052994bf2a57094f0aad788c675ab519 (diff)
drm/amdgpu: drop a dummy wakeup scheduler
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>
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index 8b2becd1aa07..a5ff9458d359 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)
229 amd_sched_wakeup(entity->sched); 229 amd_sched_wakeup(entity->sched);
230} 230}
231 231
232static void amd_sched_entity_clear_dep(struct fence *f, struct fence_cb *cb)
233{
234 struct amd_sched_entity *entity =
235 container_of(cb, struct amd_sched_entity, cb);
236 entity->dependency = NULL;
237 fence_put(f);
238}
239
232static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity) 240static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity)
233{ 241{
234 struct amd_gpu_scheduler *sched = entity->sched; 242 struct amd_gpu_scheduler *sched = entity->sched;
@@ -251,7 +259,7 @@ static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity)
251 } 259 }
252 260
253 /* Wait for fence to be scheduled */ 261 /* Wait for fence to be scheduled */
254 entity->cb.func = amd_sched_entity_wakeup; 262 entity->cb.func = amd_sched_entity_clear_dep;
255 list_add_tail(&entity->cb.node, &s_fence->scheduled_cb); 263 list_add_tail(&entity->cb.node, &s_fence->scheduled_cb);
256 return true; 264 return true;
257 } 265 }