diff options
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 10 |
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 | ||
232 | static 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 | |||
232 | static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity) | 240 | static 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 | } |