diff options
author | Dave Airlie <airlied@redhat.com> | 2018-07-20 00:30:18 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-07-20 00:54:31 -0400 |
commit | 500775074f88d9cf5416bed2ca19592812d62c41 (patch) | |
tree | b1c5da7128eee2f71d9259b47ab29f7cc6fbe25f /drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | |
parent | ef8e0ff97ae8168ffe1558a5726a8b348c8228a3 (diff) | |
parent | 5c675bf2c67c4efb36a78bebf44dc435db2daf16 (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.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); |