drm/amdgpu: remove fence parameter from amd_sched_job_init
authorChristian König <christian.koenig@amd.com>
Thu, 30 Jun 2016 08:52:03 +0000 (10:52 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 7 Jul 2016 19:06:11 +0000 (15:06 -0400)
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>
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
drivers/gpu/drm/amd/scheduler/gpu_scheduler.h

index 0db32e3b13c0e2ec2a18008424afdd4bb66fbc65..0307ff5887c593a079d8fd63fa3245fb683162f3 100644 (file)
@@ -836,15 +836,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;
@@ -852,8 +850,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);
 
index cdcfda6618d0c0e0ef6c5c1651bc6dfc8da45458..327f4df55c86efc36f561fc52c3cc85f26966a64 100644 (file)
@@ -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);
 
index 2baedc4e667d843d59d1448b50a156d90045f55a..3405372cda0c2f717bdb5b8b31a779ea404d11eb 100644 (file)
@@ -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;
 }
 
index 3e989b153282b1129d89b3820d7735d0eb642cb5..9024dc5592e37a1029d8b22f6e9f45ae233f982f 100644 (file)
@@ -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