aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0413-drm-amdgpu-clean-up-amd-sched-wait_ts-and-wait_signa.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0413-drm-amdgpu-clean-up-amd-sched-wait_ts-and-wait_signa.patch')
-rw-r--r--common/recipes-kernel/linux/files/0413-drm-amdgpu-clean-up-amd-sched-wait_ts-and-wait_signa.patch142
1 files changed, 142 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0413-drm-amdgpu-clean-up-amd-sched-wait_ts-and-wait_signa.patch b/common/recipes-kernel/linux/files/0413-drm-amdgpu-clean-up-amd-sched-wait_ts-and-wait_signa.patch
new file mode 100644
index 00000000..5fff8d49
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0413-drm-amdgpu-clean-up-amd-sched-wait_ts-and-wait_signa.patch
@@ -0,0 +1,142 @@
+From 1d7dd229f5dded247bc8800f8f4551d3d6314afa Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Fri, 31 Jul 2015 14:31:49 +0200
+Subject: [PATCH 0413/1050] drm/amdgpu: clean up amd sched wait_ts and
+ wait_signal
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Remove code not used at the moment.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c | 6 ----
+ drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 47 ++++-----------------------
+ drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 5 ---
+ 3 files changed, 7 insertions(+), 51 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
+index d682fab..161c83a 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sched.c
+@@ -90,12 +90,6 @@ static void amdgpu_sched_process_job(struct amd_gpu_scheduler *sched, void *job)
+ ring = fence->ring;
+ adev = ring->adev;
+
+- if (sched_job->ctx) {
+- c_entity = &sched_job->ctx->rings[ring->idx].c_entity;
+- atomic64_set(&c_entity->last_signaled_v_seq,
+- sched_job->ibs[sched_job->num_ibs - 1].sequence);
+- }
+-
+ /* wake up users waiting for time stamp */
+ wake_up_all(&c_entity->wait_queue);
+
+diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+index 042da7d..89799eb 100644
+--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
++++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+@@ -208,7 +208,6 @@ int amd_context_entity_init(struct amd_gpu_scheduler *sched,
+ entity->context_id = context_id;
+ atomic64_set(&entity->last_emitted_v_seq, seq_ring);
+ atomic64_set(&entity->last_queued_v_seq, seq_ring);
+- atomic64_set(&entity->last_signaled_v_seq, seq_ring);
+
+ /* Add the entity to the run queue */
+ mutex_lock(&rq->lock);
+@@ -317,20 +316,7 @@ int amd_sched_push_job(struct amd_gpu_scheduler *sched,
+ }
+
+ /**
+- * Check the virtual sequence number for specified context
+- *
+- * @seq The virtual sequence number to check
+- * @c_entity The pointer to a valid amd_context_entity
+- *
+- * return 0 if signaled, -1 else.
+-*/
+-int amd_sched_check_ts(struct amd_context_entity *c_entity, uint64_t seq)
+-{
+- return (seq <= atomic64_read(&c_entity->last_signaled_v_seq)) ? 0 : -1;
+-}
+-
+-/**
+- * Wait for a virtual sequence number to be signaled or timeout
++ * Wait for a virtual sequence number to be emitted.
+ *
+ * @c_entity The pointer to a valid context entity
+ * @seq The virtual sequence number to wait
+@@ -340,16 +326,13 @@ int amd_sched_check_ts(struct amd_context_entity *c_entity, uint64_t seq)
+ *
+ * return =0 signaled , <0 failed
+ */
+-static int amd_sched_wait(struct amd_context_entity *c_entity,
+- uint64_t seq,
+- bool intr,
+- long timeout,
+- bool emit)
++int amd_sched_wait_emit(struct amd_context_entity *c_entity,
++ uint64_t seq,
++ bool intr,
++ long timeout)
+ {
+- atomic64_t *v_seq = emit ? &c_entity->last_emitted_v_seq :
+- &c_entity->last_signaled_v_seq;
+- wait_queue_head_t *wait_queue = emit ? &c_entity->wait_emit :
+- &c_entity->wait_queue;
++ atomic64_t *v_seq = &c_entity->last_emitted_v_seq;
++ wait_queue_head_t *wait_queue = &c_entity->wait_emit;
+
+ if (intr && (timeout < 0)) {
+ wait_event_interruptible(
+@@ -379,22 +362,6 @@ static int amd_sched_wait(struct amd_context_entity *c_entity,
+ return 0;
+ }
+
+-int amd_sched_wait_signal(struct amd_context_entity *c_entity,
+- uint64_t seq,
+- bool intr,
+- long timeout)
+-{
+- return amd_sched_wait(c_entity, seq, intr, timeout, false);
+-}
+-
+-int amd_sched_wait_emit(struct amd_context_entity *c_entity,
+- uint64_t seq,
+- bool intr,
+- long timeout)
+-{
+- return amd_sched_wait(c_entity, seq, intr, timeout, true);
+-}
+-
+ static int amd_sched_main(void *param)
+ {
+ int r;
+diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+index 7f6bc26..9ab3adc 100644
+--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
++++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+@@ -74,7 +74,6 @@ struct amd_context_entity {
+ /* the virtual_seq is unique per context per ring */
+ atomic64_t last_queued_v_seq;
+ atomic64_t last_emitted_v_seq;
+- atomic64_t last_signaled_v_seq;
+ pid_t tgid;
+ uint32_t context_id;
+ /* the job_queue maintains the jobs submitted by clients */
+@@ -134,10 +133,6 @@ int amd_sched_push_job(struct amd_gpu_scheduler *sched,
+ struct amd_context_entity *c_entity,
+ void *job);
+
+-int amd_sched_check_ts(struct amd_context_entity *c_entity, uint64_t seq);
+-
+-int amd_sched_wait_signal(struct amd_context_entity *c_entity,
+- uint64_t seq, bool intr, long timeout);
+ int amd_sched_wait_emit(struct amd_context_entity *c_entity,
+ uint64_t seq,
+ bool intr,
+--
+1.9.1
+