⬢ DragonFlyBSD Kernel Audit
DF-4566 / static_proof.txt
← back to finding ↓ download raw
sys/dev/drm/amd/amdgpu/amdgpu_vce.h:66:int amdgpu_vce_ring_parse_cs(struct amdgpu_cs_parser *p, uint32_t ib_idx);
sys/dev/drm/amd/amdgpu/amdgpu_vce.h:67:int amdgpu_vce_ring_parse_cs_vm(struct amdgpu_cs_parser *p, uint32_t ib_idx);
sys/dev/drm/amd/amdgpu/amdgpu_uvd.h:81:int amdgpu_uvd_ring_parse_cs(struct amdgpu_cs_parser *parser, uint32_t ib_idx);
sys/dev/drm/amd/amdgpu/amdgpu_ring.h:125:	int (*parse_cs)(struct amdgpu_cs_parser *p, uint32_t ib_idx);
sys/dev/drm/amd/amdgpu/amdgpu_ring.h:126:	int (*patch_cs_in_place)(struct amdgpu_cs_parser *p, uint32_t ib_idx);
sys/dev/drm/amd/amdgpu/amdgpu_ring.h:225:#define amdgpu_ring_parse_cs(r, p, ib) ((r)->funcs->parse_cs((p), (ib)))
sys/dev/drm/amd/amdgpu/amdgpu_ring.h:226:#define amdgpu_ring_patch_cs_in_place(r, p, ib) ((r)->funcs->patch_cs_in_place((p), (ib)))
sys/dev/drm/amd/amdgpu/vce_v4_0.c:1077:	.parse_cs = amdgpu_vce_ring_parse_cs_vm,
sys/dev/drm/amd/amdgpu/vce_v3_0.c:902:	.parse_cs = amdgpu_vce_ring_parse_cs,
sys/dev/drm/amd/amdgpu/vce_v3_0.c:925:	.parse_cs = amdgpu_vce_ring_parse_cs_vm,
sys/dev/drm/amd/amdgpu/vce_v2_0.c:615:	.parse_cs = amdgpu_vce_ring_parse_cs,
sys/dev/drm/amd/amdgpu/uvd_v6_0.c:1530:	.parse_cs = amdgpu_uvd_ring_parse_cs,
sys/dev/drm/amd/amdgpu/uvd_v7_0.c:1266: * uvd_v7_0_ring_patch_cs_in_place - Patch the IB for command submission.
sys/dev/drm/amd/amdgpu/uvd_v7_0.c:1272:static int uvd_v7_0_ring_patch_cs_in_place(struct amdgpu_cs_parser *p,
sys/dev/drm/amd/amdgpu/uvd_v7_0.c:1786:	.patch_cs_in_place = uvd_v7_0_ring_patch_cs_in_place,
sys/dev/drm/amd/amdgpu/uvd_v5_0.c:865:	.parse_cs = amdgpu_uvd_ring_parse_cs,
sys/dev/drm/amd/amdgpu/uvd_v4_2.c:756:	.parse_cs = amdgpu_uvd_ring_parse_cs,
sys/dev/drm/amd/amdgpu/amdgpu_vce.c:708:int amdgpu_vce_ring_parse_cs(struct amdgpu_cs_parser *p, uint32_t ib_idx)
sys/dev/drm/amd/amdgpu/amdgpu_vce.c:944:int amdgpu_vce_ring_parse_cs_vm(struct amdgpu_cs_parser *p, uint32_t ib_idx)
sys/dev/drm/amd/amdgpu/amdgpu_uvd.c:964: * amdgpu_uvd_ring_parse_cs - UVD command submission parser
sys/dev/drm/amd/amdgpu/amdgpu_uvd.c:970:int amdgpu_uvd_ring_parse_cs(struct amdgpu_cs_parser *parser, uint32_t ib_idx)
sys/dev/drm/amd/amdgpu/amdgpu_cs.c:834:	if (ring->funcs->parse_cs || ring->funcs->patch_cs_in_place) {
sys/dev/drm/amd/amdgpu/amdgpu_cs.c:875:			if (ring->funcs->parse_cs) {
sys/dev/drm/amd/amdgpu/amdgpu_cs.c:879:				r = amdgpu_ring_parse_cs(ring, p, j);
sys/dev/drm/amd/amdgpu/amdgpu_cs.c:884:				r = amdgpu_ring_patch_cs_in_place(ring, p, j);
sys/dev/drm/amd/amdgpu/amdgpu_cs.c:1033:		r =  amdgpu_ib_get(adev, vm, ring->funcs->parse_cs ?
=== vcn_v1_0.c dec ring funcs (2043-2069): NO parse_cs hook ===

static const struct amdgpu_ring_funcs vcn_v1_0_dec_ring_vm_funcs = {
	.type = AMDGPU_RING_TYPE_VCN_DEC,
	.align_mask = 0xf,
	.support_64bit_ptrs = false,
	.vmhub = AMDGPU_MMHUB,
	.get_rptr = vcn_v1_0_dec_ring_get_rptr,
	.get_wptr = vcn_v1_0_dec_ring_get_wptr,
	.set_wptr = vcn_v1_0_dec_ring_set_wptr,
	.emit_frame_size =
		6 + 6 + /* hdp invalidate / flush */
		SOC15_FLUSH_GPU_TLB_NUM_WREG * 6 +
		SOC15_FLUSH_GPU_TLB_NUM_REG_WAIT * 8 +
		8 + /* vcn_v1_0_dec_ring_emit_vm_flush */
		14 + 14 + /* vcn_v1_0_dec_ring_emit_fence x2 vm fence */
		6,
	.emit_ib_size = 8, /* vcn_v1_0_dec_ring_emit_ib */
	.emit_ib = vcn_v1_0_dec_ring_emit_ib,
	.emit_fence = vcn_v1_0_dec_ring_emit_fence,
	.emit_vm_flush = vcn_v1_0_dec_ring_emit_vm_flush,
	.test_ring = amdgpu_vcn_dec_ring_test_ring,
	.test_ib = amdgpu_vcn_dec_ring_test_ib,
	.insert_nop = vcn_v1_0_dec_ring_insert_nop,
	.insert_start = vcn_v1_0_dec_ring_insert_start,
	.insert_end = vcn_v1_0_dec_ring_insert_end,
	.pad_ib = amdgpu_ring_generic_pad_ib,
	.begin_use = amdgpu_vcn_ring_begin_use,
=== amdgpu_cs.c:833-836 - ib contents parsed ONLY for rings with parse_cs/patch_cs_in_place ===

	/* Only for UVD/VCE VM emulation */
	if (ring->funcs->parse_cs || ring->funcs->patch_cs_in_place) {
		unsigned i, j;

		for (i = 0, j = 0; i < p->nchunks && j < p->job->num_ibs; i++) {
			struct drm_amdgpu_cs_chunk_ib *chunk_ib;
=== guest runtime: no AMD GPU, no /dev/dri ===