diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c index 37badd6292cb14c6ca0e06cddc287751515f304f..2ab63d2238911bfb9ba5f4a6557806e1ceb33a8e 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c @@ -300,12 +300,8 @@ static int amd_sched_main(void *param) r = kfifo_out(&c_entity->job_queue, &job, sizeof(void *)); if (r != sizeof(void *)) continue; - r = 0; - if (sched->ops->prepare_job) - r = sched->ops->prepare_job(sched, c_entity, job); - if (!r) { - atomic_inc(&sched->hw_rq_count); - } + atomic_inc(&sched->hw_rq_count); + mutex_lock(&sched->sched_lock); fence = sched->ops->run_job(sched, c_entity, job); if (fence) { diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h index d4116bb47a1b8da26ba38d10afa09a0622d4c63e..5913c5cd1c485cd9f945735484547f91a463b8fa 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h @@ -93,9 +93,6 @@ static inline struct amd_sched_fence *to_amd_sched_fence(struct fence *f) * these functions should be implemented in driver side */ struct amd_sched_backend_ops { - int (*prepare_job)(struct amd_gpu_scheduler *sched, - struct amd_sched_entity *c_entity, - struct amd_sched_job *job); struct fence *(*run_job)(struct amd_gpu_scheduler *sched, struct amd_sched_entity *c_entity, struct amd_sched_job *job);