diff options
author | Christian König <christian.koenig@amd.com> | 2018-07-16 09:19:20 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-08-27 12:10:47 -0400 |
commit | 869a53d4d7d7976d039b9389aa90b6f3d29ed234 (patch) | |
tree | d455522733c12e06ff0cac9965962f047e7c68bf /drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | |
parent | 72a4c072ca9f2640ea303c399bd3224b69a543d9 (diff) |
drm/amdgpu: remove the queue manager
Not needed any more since that is now done by the scheduler.
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 67 |
1 files changed, 61 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c index a078e68e0319..e5acc72b05d2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | |||
@@ -121,10 +121,6 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev, | |||
121 | goto failed; | 121 | goto failed; |
122 | } | 122 | } |
123 | 123 | ||
124 | r = amdgpu_queue_mgr_init(adev, &ctx->queue_mgr); | ||
125 | if (r) | ||
126 | goto failed; | ||
127 | |||
128 | return 0; | 124 | return 0; |
129 | 125 | ||
130 | failed: | 126 | failed: |
@@ -150,13 +146,72 @@ static void amdgpu_ctx_fini(struct kref *ref) | |||
150 | kfree(ctx->fences); | 146 | kfree(ctx->fences); |
151 | ctx->fences = NULL; | 147 | ctx->fences = NULL; |
152 | 148 | ||
153 | amdgpu_queue_mgr_fini(adev, &ctx->queue_mgr); | ||
154 | |||
155 | mutex_destroy(&ctx->lock); | 149 | mutex_destroy(&ctx->lock); |
156 | 150 | ||
157 | kfree(ctx); | 151 | kfree(ctx); |
158 | } | 152 | } |
159 | 153 | ||
154 | int amdgpu_ctx_get_ring(struct amdgpu_ctx *ctx, | ||
155 | u32 hw_ip, u32 instance, u32 ring, | ||
156 | struct amdgpu_ring **out_ring) | ||
157 | { | ||
158 | struct amdgpu_device *adev = ctx->adev; | ||
159 | unsigned num_rings = 0; | ||
160 | |||
161 | /* Right now all IPs have only one instance - multiple rings. */ | ||
162 | if (instance != 0) { | ||
163 | DRM_DEBUG("invalid ip instance: %d\n", instance); | ||
164 | return -EINVAL; | ||
165 | } | ||
166 | |||
167 | switch (hw_ip) { | ||
168 | case AMDGPU_HW_IP_GFX: | ||
169 | *out_ring = &adev->gfx.gfx_ring[ring]; | ||
170 | num_rings = adev->gfx.num_gfx_rings; | ||
171 | break; | ||
172 | case AMDGPU_HW_IP_COMPUTE: | ||
173 | *out_ring = &adev->gfx.compute_ring[ring]; | ||
174 | num_rings = adev->gfx.num_compute_rings; | ||
175 | break; | ||
176 | case AMDGPU_HW_IP_DMA: | ||
177 | *out_ring = &adev->sdma.instance[ring].ring; | ||
178 | num_rings = adev->sdma.num_instances; | ||
179 | break; | ||
180 | case AMDGPU_HW_IP_UVD: | ||
181 | *out_ring = &adev->uvd.inst[0].ring; | ||
182 | num_rings = adev->uvd.num_uvd_inst; | ||
183 | break; | ||
184 | case AMDGPU_HW_IP_VCE: | ||
185 | *out_ring = &adev->vce.ring[ring]; | ||
186 | num_rings = adev->vce.num_rings; | ||
187 | break; | ||
188 | case AMDGPU_HW_IP_UVD_ENC: | ||
189 | *out_ring = &adev->uvd.inst[0].ring_enc[ring]; | ||
190 | num_rings = adev->uvd.num_enc_rings; | ||
191 | break; | ||
192 | case AMDGPU_HW_IP_VCN_DEC: | ||
193 | *out_ring = &adev->vcn.ring_dec; | ||
194 | num_rings = 1; | ||
195 | break; | ||
196 | case AMDGPU_HW_IP_VCN_ENC: | ||
197 | *out_ring = &adev->vcn.ring_enc[ring]; | ||
198 | num_rings = adev->vcn.num_enc_rings; | ||
199 | break; | ||
200 | case AMDGPU_HW_IP_VCN_JPEG: | ||
201 | *out_ring = &adev->vcn.ring_jpeg; | ||
202 | num_rings = 1; | ||
203 | break; | ||
204 | default: | ||
205 | DRM_ERROR("unknown HW IP type: %d\n", hw_ip); | ||
206 | return -EINVAL; | ||
207 | } | ||
208 | |||
209 | if (ring > num_rings) | ||
210 | return -EINVAL; | ||
211 | |||
212 | return 0; | ||
213 | } | ||
214 | |||
160 | static int amdgpu_ctx_alloc(struct amdgpu_device *adev, | 215 | static int amdgpu_ctx_alloc(struct amdgpu_device *adev, |
161 | struct amdgpu_fpriv *fpriv, | 216 | struct amdgpu_fpriv *fpriv, |
162 | struct drm_file *filp, | 217 | struct drm_file *filp, |