aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2018-07-20 00:30:18 -0400
committerDave Airlie <airlied@redhat.com>2018-07-20 00:54:31 -0400
commit500775074f88d9cf5416bed2ca19592812d62c41 (patch)
treeb1c5da7128eee2f71d9259b47ab29f7cc6fbe25f /drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
parentef8e0ff97ae8168ffe1558a5726a8b348c8228a3 (diff)
parent5c675bf2c67c4efb36a78bebf44dc435db2daf16 (diff)
Merge branch 'drm-next-4.19' of git://people.freedesktop.org/~agd5f/linux into drm-next
More features for 4.19: - Map processes to vmids for debugging GPUVM faults - Raven gfxoff fixes - Initial gfxoff support for vega12 - Use defines for interrupt sources rather than magic numbers - DC aux fixes - Finish DC logging TODO - Add more DC debugfs interfaces for conformance testing - Add CRC support for DCN - Scheduler rework in preparation for load balancing - Unify common smu9 code - Clean up UVD instancing support - ttm cleanups - Misc fixes and cleanups Signed-off-by: Dave Airlie <airlied@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180719194001.3488-1-alexander.deucher@amd.com
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
index 6ae1ad7e83b3..86182c966ed6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
@@ -190,8 +190,7 @@ int amdgpu_vce_sw_init(struct amdgpu_device *adev, unsigned long size)
190 190
191 ring = &adev->vce.ring[0]; 191 ring = &adev->vce.ring[0];
192 rq = &ring->sched.sched_rq[DRM_SCHED_PRIORITY_NORMAL]; 192 rq = &ring->sched.sched_rq[DRM_SCHED_PRIORITY_NORMAL];
193 r = drm_sched_entity_init(&ring->sched, &adev->vce.entity, 193 r = drm_sched_entity_init(&adev->vce.entity, &rq, 1, NULL);
194 rq, NULL);
195 if (r != 0) { 194 if (r != 0) {
196 DRM_ERROR("Failed setting up VCE run queue.\n"); 195 DRM_ERROR("Failed setting up VCE run queue.\n");
197 return r; 196 return r;
@@ -470,12 +469,10 @@ int amdgpu_vce_get_create_msg(struct amdgpu_ring *ring, uint32_t handle,
470 for (i = ib->length_dw; i < ib_size_dw; ++i) 469 for (i = ib->length_dw; i < ib_size_dw; ++i)
471 ib->ptr[i] = 0x0; 470 ib->ptr[i] = 0x0;
472 471
473 r = amdgpu_ib_schedule(ring, 1, ib, NULL, &f); 472 r = amdgpu_job_submit_direct(job, ring, &f);
474 job->fence = dma_fence_get(f);
475 if (r) 473 if (r)
476 goto err; 474 goto err;
477 475
478 amdgpu_job_free(job);
479 if (fence) 476 if (fence)
480 *fence = dma_fence_get(f); 477 *fence = dma_fence_get(f);
481 dma_fence_put(f); 478 dma_fence_put(f);
@@ -532,19 +529,13 @@ int amdgpu_vce_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle,
532 for (i = ib->length_dw; i < ib_size_dw; ++i) 529 for (i = ib->length_dw; i < ib_size_dw; ++i)
533 ib->ptr[i] = 0x0; 530 ib->ptr[i] = 0x0;
534 531
535 if (direct) { 532 if (direct)
536 r = amdgpu_ib_schedule(ring, 1, ib, NULL, &f); 533 r = amdgpu_job_submit_direct(job, ring, &f);
537 job->fence = dma_fence_get(f); 534 else
538 if (r) 535 r = amdgpu_job_submit(job, &ring->adev->vce.entity,
539 goto err;
540
541 amdgpu_job_free(job);
542 } else {
543 r = amdgpu_job_submit(job, ring, &ring->adev->vce.entity,
544 AMDGPU_FENCE_OWNER_UNDEFINED, &f); 536 AMDGPU_FENCE_OWNER_UNDEFINED, &f);
545 if (r) 537 if (r)
546 goto err; 538 goto err;
547 }
548 539
549 if (fence) 540 if (fence)
550 *fence = dma_fence_get(f); 541 *fence = dma_fence_get(f);