diff options
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 11 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 7 |
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 | ||
30 | static struct fence *amdgpu_sched_run_job(struct amd_gpu_scheduler *sched, | 30 | static 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, | |||
58 | err: | 56 | err: |
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 | ||
65 | static void amdgpu_sched_process_job(struct amd_gpu_scheduler *sched, | 63 | static 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 | */ |
92 | struct amd_sched_backend_ops { | 92 | struct 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 | /** |