aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c11
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.c4
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.h7
3 files changed, 8 insertions, 14 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
index 757058d539f4..f93fb3541488 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
@@ -27,13 +27,11 @@
27#include <drm/drmP.h> 27#include <drm/drmP.h>
28#include "amdgpu.h" 28#include "amdgpu.h"
29 29
30static struct fence *amdgpu_sched_run_job(struct amd_gpu_scheduler *sched, 30static struct fence *amdgpu_sched_run_job(struct amd_sched_job *job)
31 struct amd_sched_entity *entity,
32 struct amd_sched_job *job)
33{ 31{
34 int r = 0;
35 struct amdgpu_job *sched_job; 32 struct amdgpu_job *sched_job;
36 struct amdgpu_fence *fence; 33 struct amdgpu_fence *fence;
34 int r;
37 35
38 if (!job) { 36 if (!job) {
39 DRM_ERROR("job is null\n"); 37 DRM_ERROR("job is null\n");
@@ -58,12 +56,11 @@ static struct fence *amdgpu_sched_run_job(struct amd_gpu_scheduler *sched,
58err: 56err:
59 DRM_ERROR("Run job error\n"); 57 DRM_ERROR("Run job error\n");
60 mutex_unlock(&sched_job->job_lock); 58 mutex_unlock(&sched_job->job_lock);
61 sched->ops->process_job(sched, (struct amd_sched_job *)sched_job); 59 job->sched->ops->process_job(job);
62 return NULL; 60 return NULL;
63} 61}
64 62
65static void amdgpu_sched_process_job(struct amd_gpu_scheduler *sched, 63static void amdgpu_sched_process_job(struct amd_sched_job *job)
66 struct amd_sched_job *job)
67{ 64{
68 struct amdgpu_job *sched_job; 65 struct amdgpu_job *sched_job;
69 66
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index 414536557673..6dfbdea85e87 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
@@ -289,7 +289,7 @@ static void amd_sched_process_job(struct fence *f, struct fence_cb *cb)
289 amd_sched_fence_signal(sched_job->s_fence); 289 amd_sched_fence_signal(sched_job->s_fence);
290 atomic_dec(&sched->hw_rq_count); 290 atomic_dec(&sched->hw_rq_count);
291 fence_put(&sched_job->s_fence->base); 291 fence_put(&sched_job->s_fence->base);
292 sched->ops->process_job(sched, sched_job); 292 sched->ops->process_job(sched_job);
293 wake_up_interruptible(&sched->wait_queue); 293 wake_up_interruptible(&sched->wait_queue);
294} 294}
295 295
@@ -318,7 +318,7 @@ static int amd_sched_main(void *param)
318 continue; 318 continue;
319 atomic_inc(&sched->hw_rq_count); 319 atomic_inc(&sched->hw_rq_count);
320 320
321 fence = sched->ops->run_job(sched, c_entity, job); 321 fence = sched->ops->run_job(job);
322 if (fence) { 322 if (fence) {
323 r = fence_add_callback(fence, &job->cb, 323 r = fence_add_callback(fence, &job->cb,
324 amd_sched_process_job); 324 amd_sched_process_job);
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
index 128f908c6021..13349a6a00af 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
@@ -90,11 +90,8 @@ static inline struct amd_sched_fence *to_amd_sched_fence(struct fence *f)
90 * these functions should be implemented in driver side 90 * these functions should be implemented in driver side
91*/ 91*/
92struct amd_sched_backend_ops { 92struct amd_sched_backend_ops {
93 struct fence *(*run_job)(struct amd_gpu_scheduler *sched, 93 struct fence *(*run_job)(struct amd_sched_job *job);
94 struct amd_sched_entity *c_entity, 94 void (*process_job)(struct amd_sched_job *job);
95 struct amd_sched_job *job);
96 void (*process_job)(struct amd_gpu_scheduler *sched,
97 struct amd_sched_job *job);
98}; 95};
99 96
100/** 97/**