drm/amdgpu: drop a dummy wakeup scheduler
authorMonk Liu <Monk.Liu@amd.com>
Tue, 26 Jan 2016 06:59:57 +0000 (14:59 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 10 Feb 2016 19:17:02 +0000 (14:17 -0500)
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

index 8b2becd1aa079977525a2c513005fa67f2ad0ca5..a5ff9458d359099ce5b57a033351b54219af4c54 100644 (file)
@@ -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;
        }