aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-06-30 04:52:03 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-07-07 15:06:11 -0400
commit595a9cd68c132e474ee5daf97067d4d15c618739 (patch)
treebd49bec6ea57e468e347020f9884ae36f1dacea6
parenta5fb4ec29c74a16ce1c269e52bc85ca86ee41e81 (diff)
drm/amdgpu: remove fence parameter from amd_sched_job_init
We return the fence as part of the job structur anyway, no need to do this twice. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Chunming Zhou <david1.zhou@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c8
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_job.c5
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.c4
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.h2
4 files changed, 7 insertions, 12 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index 0db32e3b13c0..0307ff5887c5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -836,15 +836,13 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
836{ 836{
837 struct amdgpu_ring *ring = p->job->ring; 837 struct amdgpu_ring *ring = p->job->ring;
838 struct amd_sched_entity *entity = &p->ctx->rings[ring->idx].entity; 838 struct amd_sched_entity *entity = &p->ctx->rings[ring->idx].entity;
839 struct fence *fence;
840 struct amdgpu_job *job; 839 struct amdgpu_job *job;
841 int r; 840 int r;
842 841
843 job = p->job; 842 job = p->job;
844 p->job = NULL; 843 p->job = NULL;
845 844
846 r = amd_sched_job_init(&job->base, &ring->sched, 845 r = amd_sched_job_init(&job->base, &ring->sched, entity, p->filp);
847 entity, p->filp, &fence);
848 if (r) { 846 if (r) {
849 amdgpu_job_free(job); 847 amdgpu_job_free(job);
850 return r; 848 return r;
@@ -852,8 +850,8 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
852 850
853 job->owner = p->filp; 851 job->owner = p->filp;
854 job->ctx = entity->fence_context; 852 job->ctx = entity->fence_context;
855 p->fence = fence_get(fence); 853 p->fence = fence_get(&job->base.s_fence->finished);
856 cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, fence); 854 cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, p->fence);
857 job->uf_sequence = cs->out.handle; 855 job->uf_sequence = cs->out.handle;
858 amdgpu_job_free_resources(job); 856 amdgpu_job_free_resources(job);
859 857
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
index cdcfda6618d0..327f4df55c86 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -113,20 +113,19 @@ int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring,
113 struct amd_sched_entity *entity, void *owner, 113 struct amd_sched_entity *entity, void *owner,
114 struct fence **f) 114 struct fence **f)
115{ 115{
116 struct fence *fence;
117 int r; 116 int r;
118 job->ring = ring; 117 job->ring = ring;
119 118
120 if (!f) 119 if (!f)
121 return -EINVAL; 120 return -EINVAL;
122 121
123 r = amd_sched_job_init(&job->base, &ring->sched, entity, owner, &fence); 122 r = amd_sched_job_init(&job->base, &ring->sched, entity, owner);
124 if (r) 123 if (r)
125 return r; 124 return r;
126 125
127 job->owner = owner; 126 job->owner = owner;
128 job->ctx = entity->fence_context; 127 job->ctx = entity->fence_context;
129 *f = fence_get(fence); 128 *f = fence_get(&job->base.s_fence->finished);
130 amdgpu_job_free_resources(job); 129 amdgpu_job_free_resources(job);
131 amd_sched_entity_push_job(&job->base); 130 amd_sched_entity_push_job(&job->base);
132 131
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index 2baedc4e667d..3405372cda0c 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
@@ -403,7 +403,7 @@ void amd_sched_entity_push_job(struct amd_sched_job *sched_job)
403int amd_sched_job_init(struct amd_sched_job *job, 403int amd_sched_job_init(struct amd_sched_job *job,
404 struct amd_gpu_scheduler *sched, 404 struct amd_gpu_scheduler *sched,
405 struct amd_sched_entity *entity, 405 struct amd_sched_entity *entity,
406 void *owner, struct fence **fence) 406 void *owner)
407{ 407{
408 job->sched = sched; 408 job->sched = sched;
409 job->s_entity = entity; 409 job->s_entity = entity;
@@ -415,8 +415,6 @@ int amd_sched_job_init(struct amd_sched_job *job,
415 INIT_LIST_HEAD(&job->node); 415 INIT_LIST_HEAD(&job->node);
416 INIT_DELAYED_WORK(&job->work_tdr, amd_sched_job_timedout); 416 INIT_DELAYED_WORK(&job->work_tdr, amd_sched_job_timedout);
417 417
418 if (fence)
419 *fence = &job->s_fence->finished;
420 return 0; 418 return 0;
421} 419}
422 420
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
index 3e989b153282..9024dc5592e3 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
@@ -151,5 +151,5 @@ void amd_sched_fence_finished(struct amd_sched_fence *fence);
151int amd_sched_job_init(struct amd_sched_job *job, 151int amd_sched_job_init(struct amd_sched_job *job,
152 struct amd_gpu_scheduler *sched, 152 struct amd_gpu_scheduler *sched,
153 struct amd_sched_entity *entity, 153 struct amd_sched_entity *entity,
154 void *owner, struct fence **fence); 154 void *owner);
155#endif 155#endif