]> git.karo-electronics.de Git - linux-beck.git/commitdiff
drm/amdgpu: reorder scheduler functions
authorChristian König <christian.koenig@amd.com>
Thu, 20 Aug 2015 15:01:01 +0000 (17:01 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 25 Aug 2015 14:44:23 +0000 (10:44 -0400)
Keep run queue, entity and scheduler handling together.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
drivers/gpu/drm/amd/scheduler/gpu_scheduler.c

index 435d70499d3e9764e88ff4a15d92bf18fe00ed96..5fb189ca7fbe603ca628f3afc424a8cfb44a4c76 100644 (file)
@@ -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 =