[PATCH 4/4] drm/amdgpu: remove fence parameter from amd_sched_job_init
zhoucm1
david1.zhou at amd.com
Thu Jun 30 09:22:15 UTC 2016
On 2016年06月30日 16:54, Christian König wrote:
> From: Christian König <christian.koenig at amd.com>
>
> 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 at amd.com>
Reviewed-by: Chunming Zhou <david1.zhou at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 8 +++-----
> drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 5 ++---
> drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 4 +---
> 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 8d4fe8a..73c5997 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> @@ -831,15 +831,13 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
> {
> struct amdgpu_ring *ring = p->job->ring;
> struct amd_sched_entity *entity = &p->ctx->rings[ring->idx].entity;
> - struct fence *fence;
> struct amdgpu_job *job;
> int r;
>
> job = p->job;
> p->job = NULL;
>
> - r = amd_sched_job_init(&job->base, &ring->sched,
> - entity, p->filp, &fence);
> + r = amd_sched_job_init(&job->base, &ring->sched, entity, p->filp);
> if (r) {
> amdgpu_job_free(job);
> return r;
> @@ -847,8 +845,8 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
>
> job->owner = p->filp;
> job->ctx = entity->fence_context;
> - p->fence = fence_get(fence);
> - cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, fence);
> + p->fence = fence_get(&job->base.s_fence->finished);
> + cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, p->fence);
> job->uf_sequence = cs->out.handle;
> amdgpu_job_free_resources(job);
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
> index cdcfda6..327f4df 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,
> struct amd_sched_entity *entity, void *owner,
> struct fence **f)
> {
> - struct fence *fence;
> int r;
> job->ring = ring;
>
> if (!f)
> return -EINVAL;
>
> - r = amd_sched_job_init(&job->base, &ring->sched, entity, owner, &fence);
> + r = amd_sched_job_init(&job->base, &ring->sched, entity, owner);
> if (r)
> return r;
>
> job->owner = owner;
> job->ctx = entity->fence_context;
> - *f = fence_get(fence);
> + *f = fence_get(&job->base.s_fence->finished);
> amdgpu_job_free_resources(job);
> amd_sched_entity_push_job(&job->base);
>
> diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
> index 2baedc4e..3405372 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)
> int amd_sched_job_init(struct amd_sched_job *job,
> struct amd_gpu_scheduler *sched,
> struct amd_sched_entity *entity,
> - void *owner, struct fence **fence)
> + void *owner)
> {
> job->sched = sched;
> job->s_entity = entity;
> @@ -415,8 +415,6 @@ int amd_sched_job_init(struct amd_sched_job *job,
> INIT_LIST_HEAD(&job->node);
> INIT_DELAYED_WORK(&job->work_tdr, amd_sched_job_timedout);
>
> - if (fence)
> - *fence = &job->s_fence->finished;
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
> index 3e989b1..9024dc5 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);
> int amd_sched_job_init(struct amd_sched_job *job,
> struct amd_gpu_scheduler *sched,
> struct amd_sched_entity *entity,
> - void *owner, struct fence **fence);
> + void *owner);
> #endif
More information about the amd-gfx
mailing list