aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0469-drm-amdgpu-some-clean-up-for-cs_ioctl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0469-drm-amdgpu-some-clean-up-for-cs_ioctl.patch')
-rw-r--r--common/recipes-kernel/linux/files/0469-drm-amdgpu-some-clean-up-for-cs_ioctl.patch81
1 files changed, 81 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0469-drm-amdgpu-some-clean-up-for-cs_ioctl.patch b/common/recipes-kernel/linux/files/0469-drm-amdgpu-some-clean-up-for-cs_ioctl.patch
new file mode 100644
index 00000000..7a51be33
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0469-drm-amdgpu-some-clean-up-for-cs_ioctl.patch
@@ -0,0 +1,81 @@
+From 3c4adead8480f81df687a181d1e54a39b91b9363 Mon Sep 17 00:00:00 2001
+From: Chunming Zhou <david1.zhou@amd.com>
+Date: Tue, 18 Aug 2015 16:19:13 +0800
+Subject: [PATCH 0469/1050] drm/amdgpu: some clean up for cs_ioctl
+
+Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
+Reviewed-by: Christian K?nig <christian.koenig@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 8 --------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 29 +----------------------------
+ 2 files changed, 1 insertion(+), 36 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index 95d4969..d050f50 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -1257,14 +1257,6 @@ struct amdgpu_cs_parser {
+
+ /* user fence */
+ struct amdgpu_user_fence uf;
+-
+- struct amdgpu_ring *ring;
+- struct mutex job_lock;
+- struct work_struct job_work;
+- int (*prepare_job)(struct amdgpu_cs_parser *sched_job);
+- int (*run_job)(struct amdgpu_cs_parser *sched_job);
+- int (*free_job)(struct amdgpu_cs_parser *sched_job);
+- struct amd_sched_fence *s_fence;
+ };
+
+ struct amdgpu_job {
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+index 7b4823d..77fc7cd 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+@@ -827,32 +827,6 @@ static int amdgpu_cs_parser_prepare_job(struct amdgpu_cs_parser *sched_job)
+ return r;
+ }
+
+-static struct amdgpu_ring *amdgpu_cs_parser_get_ring(
+- struct amdgpu_device *adev,
+- struct amdgpu_cs_parser *parser)
+-{
+- int i, r;
+-
+- struct amdgpu_cs_chunk *chunk;
+- struct drm_amdgpu_cs_chunk_ib *chunk_ib;
+- struct amdgpu_ring *ring;
+- for (i = 0; i < parser->nchunks; i++) {
+- chunk = &parser->chunks[i];
+- chunk_ib = (struct drm_amdgpu_cs_chunk_ib *)chunk->kdata;
+-
+- if (chunk->chunk_id != AMDGPU_CHUNK_ID_IB)
+- continue;
+-
+- r = amdgpu_cs_get_ring(adev, chunk_ib->ip_type,
+- chunk_ib->ip_instance, chunk_ib->ring,
+- &ring);
+- if (r)
+- return NULL;
+- break;
+- }
+- return ring;
+-}
+-
+ static int amdgpu_cs_free_job(struct amdgpu_job *sched_job)
+ {
+ int i;
+@@ -897,8 +871,7 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
+
+ if (amdgpu_enable_scheduler && parser->num_ibs) {
+ struct amdgpu_job *job;
+- struct amdgpu_ring * ring =
+- amdgpu_cs_parser_get_ring(adev, parser);
++ struct amdgpu_ring * ring = parser->ibs->ring;
+ job = kzalloc(sizeof(struct amdgpu_job), GFP_KERNEL);
+ if (!job)
+ return -ENOMEM;
+--
+1.9.1
+