aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0308-drm-amdgpu-nuke-the-kernel-context.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0308-drm-amdgpu-nuke-the-kernel-context.patch')
-rw-r--r--common/recipes-kernel/linux/files/0308-drm-amdgpu-nuke-the-kernel-context.patch139
1 files changed, 139 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0308-drm-amdgpu-nuke-the-kernel-context.patch b/common/recipes-kernel/linux/files/0308-drm-amdgpu-nuke-the-kernel-context.patch
new file mode 100644
index 00000000..357de07e
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0308-drm-amdgpu-nuke-the-kernel-context.patch
@@ -0,0 +1,139 @@
+From f966a597c252ae36b89a07d7b0460449bcb680c7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Thu, 11 Feb 2016 09:56:44 +0100
+Subject: [PATCH 0308/1110] drm/amdgpu: nuke the kernel context
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Not used any more.
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Kalyan Alle <kalyan.alle@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu.h | 7 -------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 18 +++++++-----------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 6 ------
+ drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 5 -----
+ 4 files changed, 7 insertions(+), 29 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+index 84ee4fe..e33c5a6 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+@@ -983,10 +983,6 @@ struct amdgpu_ctx_mgr {
+ struct idr ctx_handles;
+ };
+
+-int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
+- struct amdgpu_ctx *ctx);
+-void amdgpu_ctx_fini(struct amdgpu_ctx *ctx);
+-
+ struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id);
+ int amdgpu_ctx_put(struct amdgpu_ctx *ctx);
+
+@@ -2050,9 +2046,6 @@ struct amdgpu_device {
+ /* amdkfd interface */
+ struct kfd_dev *kfd;
+
+- /* kernel conext for IB submission */
+- struct amdgpu_ctx kernel_ctx;
+-
+ struct amdgpu_virtualization virtualization;
+ };
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+index f1f4b45..3b99282 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+@@ -25,8 +25,7 @@
+ #include <drm/drmP.h>
+ #include "amdgpu.h"
+
+-int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
+- struct amdgpu_ctx *ctx)
++static int amdgpu_ctx_init(struct amdgpu_device *adev, struct amdgpu_ctx *ctx)
+ {
+ unsigned i, j;
+ int r;
+@@ -47,14 +46,11 @@ int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
+ }
+ /* create context entity for each ring */
+ for (i = 0; i < adev->num_rings; i++) {
++ struct amdgpu_ring *ring = adev->rings[i];
+ struct amd_sched_rq *rq;
+- if (pri >= AMD_SCHED_MAX_PRIORITY) {
+- kfree(ctx->fences);
+- return -EINVAL;
+- }
+- rq = &adev->rings[i]->sched.sched_rq[pri];
+- r = amd_sched_entity_init(&adev->rings[i]->sched,
+- &ctx->rings[i].entity,
++
++ rq = &ring->sched.sched_rq[AMD_SCHED_PRIORITY_NORMAL];
++ r = amd_sched_entity_init(&ring->sched, &ctx->rings[i].entity,
+ rq, amdgpu_sched_jobs);
+ if (r)
+ break;
+@@ -70,7 +66,7 @@ int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
+ return 0;
+ }
+
+-void amdgpu_ctx_fini(struct amdgpu_ctx *ctx)
++static void amdgpu_ctx_fini(struct amdgpu_ctx *ctx)
+ {
+ struct amdgpu_device *adev = ctx->adev;
+ unsigned i, j;
+@@ -108,7 +104,7 @@ static int amdgpu_ctx_alloc(struct amdgpu_device *adev,
+ return r;
+ }
+ *id = (uint32_t)r;
+- r = amdgpu_ctx_init(adev, AMD_SCHED_PRIORITY_NORMAL, ctx);
++ r = amdgpu_ctx_init(adev, ctx);
+ if (r) {
+ idr_remove(&mgr->ctx_handles, *id);
+ *id = 0;
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+index e70c4e9..736d560 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+@@ -1551,11 +1551,6 @@ int amdgpu_device_init(struct amdgpu_device *adev,
+ return r;
+ }
+
+- r = amdgpu_ctx_init(adev, AMD_SCHED_PRIORITY_KERNEL, &adev->kernel_ctx);
+- if (r) {
+- dev_err(adev->dev, "failed to create kernel context (%d).\n", r);
+- return r;
+- }
+ r = amdgpu_ib_ring_tests(adev);
+ if (r)
+ DRM_ERROR("ib ring test failed (%d).\n", r);
+@@ -1619,7 +1614,6 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
+ adev->shutdown = true;
+ /* evict vram memory */
+ amdgpu_bo_evict_vram(adev);
+- amdgpu_ctx_fini(&adev->kernel_ctx);
+ amdgpu_ib_pool_fini(adev);
+ amdgpu_fence_driver_fini(adev);
+ amdgpu_fbdev_fini(adev);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+index a16c43f..10ff227 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
+@@ -83,11 +83,6 @@ int amdgpu_job_submit(struct amdgpu_job *job, struct amdgpu_ring *ring,
+ struct amd_sched_entity *entity, void *owner,
+ struct fence **f)
+ {
+- struct amdgpu_device *adev = job->adev;
+-
+- if (!entity)
+- entity = &adev->kernel_ctx.rings[ring->idx].entity;
+-
+ job->ring = ring;
+ job->base.sched = &ring->sched;
+ job->base.s_entity = entity;
+--
+2.7.4
+