aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0445-drm-amdgpu-use-sched_job_init-to-initialize-sched_jo.patch
diff options
context:
space:
mode:
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.patch140
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
-