diff options
author | Christian König <christian.koenig@amd.com> | 2016-06-30 04:52:03 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-07-07 15:06:11 -0400 |
commit | 595a9cd68c132e474ee5daf97067d4d15c618739 (patch) | |
tree | bd49bec6ea57e468e347020f9884ae36f1dacea6 | |
parent | a5fb4ec29c74a16ce1c269e52bc85ca86ee41e81 (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.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 |
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) | |||
403 | int amd_sched_job_init(struct amd_sched_job *job, | 403 | int 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); | |||
151 | int amd_sched_job_init(struct amd_sched_job *job, | 151 | int 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 |