aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
diff options
context:
space:
mode:
authorMonk Liu <Monk.Liu@amd.com>2016-03-06 23:49:55 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-05-02 15:12:59 -0400
commite686941a32d31d22ce7c8b7faf9cce17816f7c4d (patch)
tree8715c3287ddb13792ec235411b734caad34c7559 /drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
parent03ccf481980f8d3363263e73c64473d8f2779dc0 (diff)
drm/amdgpu: use sched_job_init to initialize sched_job
Consolidate job initialization in one place rather than duplicating it in multiple places. Signed-off-by: Monk Liu <Monk.Liu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index 9392e50a7ba4..23266b454aec 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -862,27 +862,24 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
862 union drm_amdgpu_cs *cs) 862 union drm_amdgpu_cs *cs)
863{ 863{
864 struct amdgpu_ring *ring = p->job->ring; 864 struct amdgpu_ring *ring = p->job->ring;
865 struct amd_sched_fence *fence; 865 struct fence *fence;
866 struct amdgpu_job *job; 866 struct amdgpu_job *job;
867 int r;
867 868
868 job = p->job; 869 job = p->job;
869 p->job = NULL; 870 p->job = NULL;
870 871
871 job->base.sched = &ring->sched; 872 r = amd_sched_job_init(&job->base, &ring->sched,
872 job->base.s_entity = &p->ctx->rings[ring->idx].entity; 873 &p->ctx->rings[ring->idx].entity,
873 job->owner = p->filp; 874 p->filp, &fence);
874 875 if (r) {
875 fence = amd_sched_fence_create(job->base.s_entity, p->filp);
876 if (!fence) {
877 amdgpu_job_free(job); 876 amdgpu_job_free(job);
878 return -ENOMEM; 877 return r;
879 } 878 }
880 879
881 job->base.s_fence = fence; 880 job->owner = p->filp;
882 p->fence = fence_get(&fence->base); 881 p->fence = fence_get(fence);
883 882 cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, fence);
884 cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring,
885 &fence->base);
886 job->ibs[job->num_ibs - 1].sequence = cs->out.handle; 883 job->ibs[job->num_ibs - 1].sequence = cs->out.handle;
887 884
888 trace_amdgpu_cs_ioctl(job); 885 trace_amdgpu_cs_ioctl(job);