aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2018-07-13 10:29:10 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-07-16 17:11:53 -0400
commitee913fd9e166384aacc0aa70ffd4e93ca41d54b0 (patch)
treef40d24be324f847674d905720f5411967c31dd85 /drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
parent3320b8d2acd3d480d0dd4835d970067354eac915 (diff)
drm/amdgpu: add amdgpu_job_submit_direct helper
Make sure that we properly initialize at least the sched member. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> Acked-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_vcn.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
index 769c6723c9ca..798648a19710 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -308,13 +308,10 @@ static int amdgpu_vcn_dec_send_msg(struct amdgpu_ring *ring,
308 } 308 }
309 ib->length_dw = 16; 309 ib->length_dw = 16;
310 310
311 r = amdgpu_ib_schedule(ring, 1, ib, NULL, &f); 311 r = amdgpu_job_submit_direct(job, ring, &f);
312 job->fence = dma_fence_get(f);
313 if (r) 312 if (r)
314 goto err_free; 313 goto err_free;
315 314
316 amdgpu_job_free(job);
317
318 amdgpu_bo_fence(bo, f, false); 315 amdgpu_bo_fence(bo, f, false);
319 amdgpu_bo_unreserve(bo); 316 amdgpu_bo_unreserve(bo);
320 amdgpu_bo_unref(&bo); 317 amdgpu_bo_unref(&bo);
@@ -499,12 +496,10 @@ static int amdgpu_vcn_enc_get_create_msg(struct amdgpu_ring *ring, uint32_t hand
499 for (i = ib->length_dw; i < ib_size_dw; ++i) 496 for (i = ib->length_dw; i < ib_size_dw; ++i)
500 ib->ptr[i] = 0x0; 497 ib->ptr[i] = 0x0;
501 498
502 r = amdgpu_ib_schedule(ring, 1, ib, NULL, &f); 499 r = amdgpu_job_submit_direct(job, ring, &f);
503 job->fence = dma_fence_get(f);
504 if (r) 500 if (r)
505 goto err; 501 goto err;
506 502
507 amdgpu_job_free(job);
508 if (fence) 503 if (fence)
509 *fence = dma_fence_get(f); 504 *fence = dma_fence_get(f);
510 dma_fence_put(f); 505 dma_fence_put(f);
@@ -553,12 +548,10 @@ static int amdgpu_vcn_enc_get_destroy_msg(struct amdgpu_ring *ring, uint32_t han
553 for (i = ib->length_dw; i < ib_size_dw; ++i) 548 for (i = ib->length_dw; i < ib_size_dw; ++i)
554 ib->ptr[i] = 0x0; 549 ib->ptr[i] = 0x0;
555 550
556 r = amdgpu_ib_schedule(ring, 1, ib, NULL, &f); 551 r = amdgpu_job_submit_direct(job, ring, &f);
557 job->fence = dma_fence_get(f);
558 if (r) 552 if (r)
559 goto err; 553 goto err;
560 554
561 amdgpu_job_free(job);
562 if (fence) 555 if (fence)
563 *fence = dma_fence_get(f); 556 *fence = dma_fence_get(f);
564 dma_fence_put(f); 557 dma_fence_put(f);
@@ -666,12 +659,10 @@ static int amdgpu_vcn_jpeg_set_reg(struct amdgpu_ring *ring, uint32_t handle,
666 } 659 }
667 ib->length_dw = 16; 660 ib->length_dw = 16;
668 661
669 r = amdgpu_ib_schedule(ring, 1, ib, NULL, &f); 662 r = amdgpu_job_submit_direct(job, ring, &f);
670 job->fence = dma_fence_get(f);
671 if (r) 663 if (r)
672 goto err; 664 goto err;
673 665
674 amdgpu_job_free(job);
675 if (fence) 666 if (fence)
676 *fence = dma_fence_get(f); 667 *fence = dma_fence_get(f);
677 dma_fence_put(f); 668 dma_fence_put(f);