diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 25 |
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); |