aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-02-11 03:56:44 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-02-12 15:41:58 -0500
commit20874179a22310c2224f43fc5676b7d87ad47e70 (patch)
tree86a4b3a7188c00dd7975f02431da62f53e974d12
parentc594989cc0db05a07a852e1da6f5387d8265a64a (diff)
drm/amdgpu: nuke the kernel context
Not used any more. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h7
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c18
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_job.c5
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 4654beac7e70..37ac1b2bbadc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1017,10 +1017,6 @@ struct amdgpu_ctx_mgr {
1017 struct idr ctx_handles; 1017 struct idr ctx_handles;
1018}; 1018};
1019 1019
1020int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
1021 struct amdgpu_ctx *ctx);
1022void amdgpu_ctx_fini(struct amdgpu_ctx *ctx);
1023
1024struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id); 1020struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id);
1025int amdgpu_ctx_put(struct amdgpu_ctx *ctx); 1021int amdgpu_ctx_put(struct amdgpu_ctx *ctx);
1026 1022
@@ -2086,9 +2082,6 @@ struct amdgpu_device {
2086 /* amdkfd interface */ 2082 /* amdkfd interface */
2087 struct kfd_dev *kfd; 2083 struct kfd_dev *kfd;
2088 2084
2089 /* kernel conext for IB submission */
2090 struct amdgpu_ctx kernel_ctx;
2091
2092 struct amdgpu_virtualization virtualization; 2085 struct amdgpu_virtualization virtualization;
2093}; 2086};
2094 2087
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
index f1f4b453ece1..3b99282a3307 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
@@ -25,8 +25,7 @@
25#include <drm/drmP.h> 25#include <drm/drmP.h>
26#include "amdgpu.h" 26#include "amdgpu.h"
27 27
28int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri, 28static int amdgpu_ctx_init(struct amdgpu_device *adev, struct amdgpu_ctx *ctx)
29 struct amdgpu_ctx *ctx)
30{ 29{
31 unsigned i, j; 30 unsigned i, j;
32 int r; 31 int r;
@@ -47,14 +46,11 @@ int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
47 } 46 }
48 /* create context entity for each ring */ 47 /* create context entity for each ring */
49 for (i = 0; i < adev->num_rings; i++) { 48 for (i = 0; i < adev->num_rings; i++) {
49 struct amdgpu_ring *ring = adev->rings[i];
50 struct amd_sched_rq *rq; 50 struct amd_sched_rq *rq;
51 if (pri >= AMD_SCHED_MAX_PRIORITY) { 51
52 kfree(ctx->fences); 52 rq = &ring->sched.sched_rq[AMD_SCHED_PRIORITY_NORMAL];
53 return -EINVAL; 53 r = amd_sched_entity_init(&ring->sched, &ctx->rings[i].entity,
54 }
55 rq = &adev->rings[i]->sched.sched_rq[pri];
56 r = amd_sched_entity_init(&adev->rings[i]->sched,
57 &ctx->rings[i].entity,
58 rq, amdgpu_sched_jobs); 54 rq, amdgpu_sched_jobs);
59 if (r) 55 if (r)
60 break; 56 break;
@@ -70,7 +66,7 @@ int amdgpu_ctx_init(struct amdgpu_device *adev, enum amd_sched_priority pri,
70 return 0; 66 return 0;
71} 67}
72 68
73void amdgpu_ctx_fini(struct amdgpu_ctx *ctx) 69static void amdgpu_ctx_fini(struct amdgpu_ctx *ctx)
74{ 70{
75 struct amdgpu_device *adev = ctx->adev; 71 struct amdgpu_device *adev = ctx->adev;
76 unsigned i, j; 72 unsigned i, j;
@@ -108,7 +104,7 @@ static int amdgpu_ctx_alloc(struct amdgpu_device *adev,
108 return r; 104 return r;
109 } 105 }
110 *id = (uint32_t)r; 106 *id = (uint32_t)r;
111 r = amdgpu_ctx_init(adev, AMD_SCHED_PRIORITY_NORMAL, ctx); 107 r = amdgpu_ctx_init(adev, ctx);
112 if (r) { 108 if (r) {
113 idr_remove(&mgr->ctx_handles, *id); 109 idr_remove(&mgr->ctx_handles, *id);
114 *id = 0; 110 *id = 0;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 6bdb891b9ddc..93cd1a46ccc4 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,
1551 return r; 1551 return r;
1552 } 1552 }
1553 1553
1554 r = amdgpu_ctx_init(adev, AMD_SCHED_PRIORITY_KERNEL, &adev->kernel_ctx);
1555 if (r) {
1556 dev_err(adev->dev, "failed to create kernel context (%d).\n", r);
1557 return r;
1558 }
1559 r = amdgpu_ib_ring_tests(adev); 1554 r = amdgpu_ib_ring_tests(adev);
1560 if (r) 1555 if (r)
1561 DRM_ERROR("ib ring test failed (%d).\n", r); 1556 DRM_ERROR("ib ring test failed (%d).\n", r);
@@ -1619,7 +1614,6 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
1619 adev->shutdown = true; 1614 adev->shutdown = true;
1620 /* evict vram memory */ 1615 /* evict vram memory */
1621 amdgpu_bo_evict_vram(adev); 1616 amdgpu_bo_evict_vram(adev);
1622 amdgpu_ctx_fini(&adev->kernel_ctx);
1623 amdgpu_ib_pool_fini(adev); 1617 amdgpu_ib_pool_fini(adev);
1624 amdgpu_fence_driver_fini(adev); 1618 amdgpu_fence_driver_fini(adev);
1625 amdgpu_fbdev_fini(adev); 1619 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 97db6beeca13..f29bbb96a881 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,
83 struct amd_sched_entity *entity, void *owner, 83 struct amd_sched_entity *entity, void *owner,
84 struct fence **f) 84 struct fence **f)
85{ 85{
86 struct amdgpu_device *adev = job->adev;
87
88 if (!entity)
89 entity = &adev->kernel_ctx.rings[ring->idx].entity;
90
91 job->ring = ring; 86 job->ring = ring;
92 job->base.sched = &ring->sched; 87 job->base.sched = &ring->sched;
93 job->base.s_entity = entity; 88 job->base.s_entity = entity;