diff options
author | Monk Liu <Monk.Liu@amd.com> | 2016-03-06 23:49:55 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-05-02 15:12:59 -0400 |
commit | e686941a32d31d22ce7c8b7faf9cce17816f7c4d (patch) | |
tree | 8715c3287ddb13792ec235411b734caad34c7559 /drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |
parent | 03ccf481980f8d3363263e73c64473d8f2779dc0 (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.c | 23 |
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); |