diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0445-drm-amdgpu-use-sched_job_init-to-initialize-sched_jo.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0445-drm-amdgpu-use-sched_job_init-to-initialize-sched_jo.patch | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/common/recipes-kernel/linux/files/0445-drm-amdgpu-use-sched_job_init-to-initialize-sched_jo.patch b/common/recipes-kernel/linux/files/0445-drm-amdgpu-use-sched_job_init-to-initialize-sched_jo.patch deleted file mode 100644 index 9cc2a2f8..00000000 --- a/common/recipes-kernel/linux/files/0445-drm-amdgpu-use-sched_job_init-to-initialize-sched_jo.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 8bf3466e1b68d40f331f2a1b2987d5544ccd2e09 Mon Sep 17 00:00:00 2001 -From: Monk Liu <Monk.Liu@amd.com> -Date: Mon, 7 Mar 2016 12:49:55 +0800 -Subject: [PATCH 0445/1110] drm/amdgpu: use sched_job_init to initialize - sched_job - -Signed-off-by: Monk Liu <Monk.Liu@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Kalyan Alle <kalyan.alle@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 31 +++++++++++---------------- - drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 14 ++++++------ - drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 17 +++++++++++++++ - drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 5 ++++- - 4 files changed, 42 insertions(+), 25 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c -index 170b8da..ed6d8b3 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c -@@ -914,32 +914,27 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p, - union drm_amdgpu_cs *cs) - { - struct amdgpu_ring *ring = p->job->ring; -- struct amd_sched_fence *fence; -+ struct fence *fence; - struct amdgpu_job *job; -+ int r; - - job = p->job; - p->job = NULL; - -- -- job->base.sched = &ring->sched; -- job->base.s_entity = &p->ctx->rings[ring->idx].entity; -- job->owner = p->filp; -- job->free_job = amdgpu_cs_free_job; -- -- fence = amd_sched_fence_create(job->base.s_entity, p->filp); -- if (!fence) { -- amdgpu_cs_free_job(job); -- kfree(job); -- return -ENOMEM; -+ r = amd_sched_job_init(&job->base, &ring->sched, -+ &p->ctx->rings[ring->idx].entity, -+ p->filp, &fence); -+ if (r) { -+ -+ amdgpu_cs_free_job(job); -+ return r; - } - -- job->base.s_fence = fence; -- p->fence = fence_get(&fence->base); -- -- cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, -- &fence->base); -+ job->owner = p->filp; -+ p->fence = fence_get(fence); -+ cs->out.handle = amdgpu_ctx_add_fence(p->ctx, ring, fence); - job->ibs[job->num_ibs - 1].sequence = cs->out.handle; -- -+ - trace_amdgpu_cs_ioctl(job); - amd_sched_entity_push_job(&job->base); - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c -index 8a2d54a..b081671 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c -@@ -87,16 +87,18 @@ 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; -- job->base.sched = &ring->sched; -- job->base.s_entity = entity; -- job->base.s_fence = amd_sched_fence_create(job->base.s_entity, owner); -- if (!job->base.s_fence) -- return -ENOMEM; -+ if (!f) -+ return -EINVAL; - -- *f = fence_get(&job->base.s_fence->base); -+ r = amd_sched_job_init(&job->base, &ring->sched, entity, owner, &fence); -+ if (r) -+ return r; - - job->owner = owner; -+ *f = fence_get(fence); - amd_sched_entity_push_job(&job->base); - - return 0; -diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -index a5ff945..b9d5822 100644 ---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c -@@ -335,6 +335,23 @@ void amd_sched_entity_push_job(struct amd_sched_job *sched_job) - amd_sched_entity_in(sched_job)); - } - -+/* init a sched_job with basic field */ -+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) -+{ -+ job->sched = sched; -+ job->s_entity = entity; -+ job->s_fence = amd_sched_fence_create(entity, owner); -+ if (!job->s_fence) -+ return -ENOMEM; -+ -+ if (fence) -+ *fence = &job->s_fence->base; -+ return 0; -+} -+ - /** - * Return ture if we can push more jobs to the hw. - */ -diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -index 9403145..74bbec8 100644 ---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h -@@ -144,5 +144,8 @@ struct amd_sched_fence *amd_sched_fence_create( - struct amd_sched_entity *s_entity, void *owner); - void amd_sched_fence_scheduled(struct amd_sched_fence *fence); - void amd_sched_fence_signal(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); - #endif --- -2.7.4 - |