From: Christian König Date: Thu, 20 Aug 2015 15:01:01 +0000 (+0200) Subject: drm/amdgpu: reorder scheduler functions X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=e688b728228b951f41175e3a7c0738708d045969;p=linux-beck.git drm/amdgpu: reorder scheduler functions Keep run queue, entity and scheduler handling together. Signed-off-by: Christian König Reviewed-by: Chunming Zhou --- diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c index 435d70499d3e..5fb189ca7fbe 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c @@ -93,34 +93,6 @@ amd_sched_rq_select_entity(struct amd_sched_rq *rq) return NULL; } -/** - * Return ture if we can push more jobs to the hw. - */ -static bool amd_sched_ready(struct amd_gpu_scheduler *sched) -{ - return atomic_read(&sched->hw_rq_count) < - sched->hw_submission_limit; -} - -/** - * Select next entity containing real IB submissions -*/ -static struct amd_sched_entity * -amd_sched_select_context(struct amd_gpu_scheduler *sched) -{ - struct amd_sched_entity *tmp; - - if (!amd_sched_ready(sched)) - return NULL; - - /* Kernel run queue has higher priority than normal run queue*/ - tmp = amd_sched_rq_select_entity(&sched->kernel_rq); - if (tmp == NULL) - tmp = amd_sched_rq_select_entity(&sched->sched_rq); - - return tmp; -} - /** * Init a context entity used by scheduler when submit to HW ring. * @@ -263,6 +235,34 @@ int amd_sched_push_job(struct amd_sched_job *sched_job) return 0; } +/** + * Return ture if we can push more jobs to the hw. + */ +static bool amd_sched_ready(struct amd_gpu_scheduler *sched) +{ + return atomic_read(&sched->hw_rq_count) < + sched->hw_submission_limit; +} + +/** + * Select next entity containing real IB submissions +*/ +static struct amd_sched_entity * +amd_sched_select_context(struct amd_gpu_scheduler *sched) +{ + struct amd_sched_entity *tmp; + + if (!amd_sched_ready(sched)) + return NULL; + + /* Kernel run queue has higher priority than normal run queue*/ + tmp = amd_sched_rq_select_entity(&sched->kernel_rq); + if (tmp == NULL) + tmp = amd_sched_rq_select_entity(&sched->sched_rq); + + return tmp; +} + static void amd_sched_process_job(struct fence *f, struct fence_cb *cb) { struct amd_sched_job *sched_job =