aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
diff options
context:
space:
mode:
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);