aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0549-drm-amdgpu-cleanup-entity-init.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0549-drm-amdgpu-cleanup-entity-init.patch')
-rw-r--r--common/recipes-kernel/linux/files/0549-drm-amdgpu-cleanup-entity-init.patch144
1 files changed, 0 insertions, 144 deletions
diff --git a/common/recipes-kernel/linux/files/0549-drm-amdgpu-cleanup-entity-init.patch b/common/recipes-kernel/linux/files/0549-drm-amdgpu-cleanup-entity-init.patch
deleted file mode 100644
index 1be644e8..00000000
--- a/common/recipes-kernel/linux/files/0549-drm-amdgpu-cleanup-entity-init.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From 0f75aee75112934bcaf42410df5c51d7194b5896 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Mon, 7 Sep 2015 18:07:14 +0200
-Subject: [PATCH 0549/1050] drm/amdgpu: cleanup entity init
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Reorder the fields and properly return the kfifo_alloc error code.
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
-Reviewed-by: Chunming Zhou<david1.zhou@amd.com>
----
- drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 30 +++++++++++++++------------
- drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 12 ++++++-----
- drivers/gpu/drm/amd/scheduler/sched_fence.c | 2 +-
- 3 files changed, 25 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
-index 5c8dcf8..a9d5826 100644
---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
-+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
-@@ -118,23 +118,27 @@ int amd_sched_entity_init(struct amd_gpu_scheduler *sched,
- struct amd_sched_rq *rq,
- uint32_t jobs)
- {
-+ int r;
-+
- if (!(sched && entity && rq))
- return -EINVAL;
-
- memset(entity, 0, sizeof(struct amd_sched_entity));
-- entity->belongto_rq = rq;
-- entity->scheduler = sched;
-- entity->fence_context = fence_context_alloc(1);
-- if(kfifo_alloc(&entity->job_queue,
-- jobs * sizeof(void *),
-- GFP_KERNEL))
-- return -EINVAL;
-+ INIT_LIST_HEAD(&entity->list);
-+ entity->rq = rq;
-+ entity->sched = sched;
-
- spin_lock_init(&entity->queue_lock);
-+ r = kfifo_alloc(&entity->job_queue, jobs * sizeof(void *), GFP_KERNEL);
-+ if (r)
-+ return r;
-+
- atomic_set(&entity->fence_seq, 0);
-+ entity->fence_context = fence_context_alloc(1);
-
- /* Add the entity to the run queue */
- amd_sched_rq_add_entity(rq, entity);
-+
- return 0;
- }
-
-@@ -149,8 +153,8 @@ int amd_sched_entity_init(struct amd_gpu_scheduler *sched,
- static bool amd_sched_entity_is_initialized(struct amd_gpu_scheduler *sched,
- struct amd_sched_entity *entity)
- {
-- return entity->scheduler == sched &&
-- entity->belongto_rq != NULL;
-+ return entity->sched == sched &&
-+ entity->rq != NULL;
- }
-
- /**
-@@ -180,7 +184,7 @@ static bool amd_sched_entity_is_idle(struct amd_sched_entity *entity)
- void amd_sched_entity_fini(struct amd_gpu_scheduler *sched,
- struct amd_sched_entity *entity)
- {
-- struct amd_sched_rq *rq = entity->belongto_rq;
-+ struct amd_sched_rq *rq = entity->rq;
-
- if (!amd_sched_entity_is_initialized(sched, entity))
- return;
-@@ -201,13 +205,13 @@ static void amd_sched_entity_wakeup(struct fence *f, struct fence_cb *cb)
- container_of(cb, struct amd_sched_entity, cb);
- entity->dependency = NULL;
- fence_put(f);
-- amd_sched_wakeup(entity->scheduler);
-+ amd_sched_wakeup(entity->sched);
- }
-
- static struct amd_sched_job *
- amd_sched_entity_pop_job(struct amd_sched_entity *entity)
- {
-- struct amd_gpu_scheduler *sched = entity->scheduler;
-+ struct amd_gpu_scheduler *sched = entity->sched;
- struct amd_sched_job *sched_job;
-
- if (ACCESS_ONCE(entity->dependency))
-@@ -275,7 +279,7 @@ int amd_sched_entity_push_job(struct amd_sched_job *sched_job)
- fence_get(&fence->base);
- sched_job->s_fence = fence;
-
-- wait_event(entity->scheduler->job_scheduled,
-+ wait_event(entity->sched->job_scheduled,
- amd_sched_entity_in(sched_job));
- trace_amd_sched_job(sched_job);
- return 0;
-diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
-index f33df6c..c4fe24e 100644
---- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
-+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
-@@ -38,13 +38,15 @@ struct amd_sched_rq;
- */
- struct amd_sched_entity {
- struct list_head list;
-- struct amd_sched_rq *belongto_rq;
-- atomic_t fence_seq;
-- /* the job_queue maintains the jobs submitted by clients */
-- struct kfifo job_queue;
-+ struct amd_sched_rq *rq;
-+ struct amd_gpu_scheduler *sched;
-+
- spinlock_t queue_lock;
-- struct amd_gpu_scheduler *scheduler;
-+ struct kfifo job_queue;
-+
-+ atomic_t fence_seq;
- uint64_t fence_context;
-+
- struct fence *dependency;
- struct fence_cb cb;
- };
-diff --git a/drivers/gpu/drm/amd/scheduler/sched_fence.c b/drivers/gpu/drm/amd/scheduler/sched_fence.c
-index e62c379..733522f 100644
---- a/drivers/gpu/drm/amd/scheduler/sched_fence.c
-+++ b/drivers/gpu/drm/amd/scheduler/sched_fence.c
-@@ -36,7 +36,7 @@ struct amd_sched_fence *amd_sched_fence_create(struct amd_sched_entity *s_entity
- if (fence == NULL)
- return NULL;
- fence->owner = owner;
-- fence->scheduler = s_entity->scheduler;
-+ fence->scheduler = s_entity->sched;
- spin_lock_init(&fence->lock);
-
- seq = atomic_inc_return(&s_entity->fence_seq);
---
-1.9.1
-