aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_job.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_job.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_job.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_job.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
index 9c9b19e2f353..eb0f7890401a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
@@ -87,16 +87,19 @@ int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring,
87 struct amd_sched_entity *entity, void *owner, 87 struct amd_sched_entity *entity, void *owner,
88 struct fence **f) 88 struct fence **f)
89{ 89{
90 struct fence *fence;
91 int r;
90 job->ring = ring; 92 job->ring = ring;
91 job->base.sched = &ring->sched;
92 job->base.s_entity = entity;
93 job->base.s_fence = amd_sched_fence_create(job->base.s_entity, owner);
94 if (!job->base.s_fence)
95 return -ENOMEM;
96 93
97 *f = fence_get(&job->base.s_fence->base); 94 if (!f)
95 return -EINVAL;
96
97 r = amd_sched_job_init(&job->base, &ring->sched, entity, owner, &fence);
98 if (r)
99 return r;
98 100
99 job->owner = owner; 101 job->owner = owner;
102 *f = fence_get(fence);
100 amd_sched_entity_push_job(&job->base); 103 amd_sched_entity_push_job(&job->base);
101 104
102 return 0; 105 return 0;