diff options
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c index 643e4cecc3f6..2fd60de1377e 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | |||
| @@ -489,6 +489,23 @@ static void vcn_v1_0_dec_ring_set_wptr(struct amdgpu_ring *ring) | |||
| 489 | } | 489 | } |
| 490 | 490 | ||
| 491 | /** | 491 | /** |
| 492 | * vcn_v1_0_dec_ring_insert_start - insert a start command | ||
| 493 | * | ||
| 494 | * @ring: amdgpu_ring pointer | ||
| 495 | * | ||
| 496 | * Write a start command to the ring. | ||
| 497 | */ | ||
| 498 | static void vcn_v1_0_dec_ring_insert_start(struct amdgpu_ring *ring) | ||
| 499 | { | ||
| 500 | amdgpu_ring_write(ring, | ||
| 501 | PACKET0(SOC15_REG_OFFSET(UVD, 0, mmUVD_GPCOM_VCPU_DATA0), 0)); | ||
| 502 | amdgpu_ring_write(ring, 0); | ||
| 503 | amdgpu_ring_write(ring, | ||
| 504 | PACKET0(SOC15_REG_OFFSET(UVD, 0, mmUVD_GPCOM_VCPU_CMD), 0)); | ||
| 505 | amdgpu_ring_write(ring, VCN_CMD_PACKET_START << 1); | ||
| 506 | } | ||
| 507 | |||
| 508 | /** | ||
| 492 | * vcn_v1_0_dec_ring_emit_fence - emit an fence & trap command | 509 | * vcn_v1_0_dec_ring_emit_fence - emit an fence & trap command |
| 493 | * | 510 | * |
| 494 | * @ring: amdgpu_ring pointer | 511 | * @ring: amdgpu_ring pointer |
| @@ -683,7 +700,8 @@ static const struct amdgpu_ring_funcs vcn_v1_0_dec_ring_vm_funcs = { | |||
| 683 | .emit_frame_size = | 700 | .emit_frame_size = |
| 684 | 2 + /* vcn_v1_0_dec_ring_emit_hdp_invalidate */ | 701 | 2 + /* vcn_v1_0_dec_ring_emit_hdp_invalidate */ |
| 685 | 34 * AMDGPU_MAX_VMHUBS + /* vcn_v1_0_dec_ring_emit_vm_flush */ | 702 | 34 * AMDGPU_MAX_VMHUBS + /* vcn_v1_0_dec_ring_emit_vm_flush */ |
| 686 | 14 + 14, /* vcn_v1_0_dec_ring_emit_fence x2 vm fence */ | 703 | 14 + 14 + /* vcn_v1_0_dec_ring_emit_fence x2 vm fence */ |
| 704 | 4, | ||
| 687 | .emit_ib_size = 8, /* vcn_v1_0_dec_ring_emit_ib */ | 705 | .emit_ib_size = 8, /* vcn_v1_0_dec_ring_emit_ib */ |
| 688 | .emit_ib = vcn_v1_0_dec_ring_emit_ib, | 706 | .emit_ib = vcn_v1_0_dec_ring_emit_ib, |
| 689 | .emit_fence = vcn_v1_0_dec_ring_emit_fence, | 707 | .emit_fence = vcn_v1_0_dec_ring_emit_fence, |
| @@ -692,6 +710,7 @@ static const struct amdgpu_ring_funcs vcn_v1_0_dec_ring_vm_funcs = { | |||
| 692 | .test_ring = amdgpu_vcn_dec_ring_test_ring, | 710 | .test_ring = amdgpu_vcn_dec_ring_test_ring, |
| 693 | .test_ib = amdgpu_vcn_dec_ring_test_ib, | 711 | .test_ib = amdgpu_vcn_dec_ring_test_ib, |
| 694 | .insert_nop = amdgpu_ring_insert_nop, | 712 | .insert_nop = amdgpu_ring_insert_nop, |
| 713 | .insert_start = vcn_v1_0_dec_ring_insert_start, | ||
| 695 | .pad_ib = amdgpu_ring_generic_pad_ib, | 714 | .pad_ib = amdgpu_ring_generic_pad_ib, |
| 696 | .begin_use = amdgpu_vcn_ring_begin_use, | 715 | .begin_use = amdgpu_vcn_ring_begin_use, |
| 697 | .end_use = amdgpu_vcn_ring_end_use, | 716 | .end_use = amdgpu_vcn_ring_end_use, |
