Commit ae5c2bee authored by Timur Kristóf's avatar Timur Kristóf Committed by Alex Deucher
Browse files

drm/amdgpu: Fix allocating extra dwords for rings (v2)



Rename extra_dw to extra_bytes and document what it's for.

The value is already used as if it were bytes in vcn_v4_0.c
and in amdgpu_ring_init. Just adjust the dword count in
jpeg_v1_0.c so that it becomes a byte count.

v2:
Rename extra_dw to extra_bytes as discussed during review.

Fixes: c8c1a1d2 ("drm/amdgpu: define and add extra dword for jpeg ring")
Signed-off-by: default avatarTimur Kristóf <timur.kristof@gmail.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 156db7d3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -364,7 +364,8 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,

	/* Allocate ring buffer */
	if (ring->ring_obj == NULL) {
		r = amdgpu_bo_create_kernel(adev, ring->ring_size + ring->funcs->extra_dw, PAGE_SIZE,
		r = amdgpu_bo_create_kernel(adev, ring->ring_size + ring->funcs->extra_bytes,
					    PAGE_SIZE,
					    AMDGPU_GEM_DOMAIN_GTT,
					    &ring->ring_obj,
					    &ring->gpu_addr,
+12 −1
Original line number Diff line number Diff line
@@ -211,7 +211,18 @@ struct amdgpu_ring_funcs {
	bool			support_64bit_ptrs;
	bool			no_user_fence;
	bool			secure_submission_supported;
	unsigned		extra_dw;

	/**
	 * @extra_bytes:
	 *
	 * Optional extra space in bytes that is added to the ring size
	 * when allocating the BO that holds the contents of the ring.
	 * This space isn't used for command submission to the ring,
	 * but is just there to satisfy some hardware requirements or
	 * implement workarounds. It's up to the implementation of each
	 * specific ring to initialize this space.
	 */
	unsigned		extra_bytes;

	/* ring read/write ptr handling */
	u64 (*get_rptr)(struct amdgpu_ring *ring);
+1 −1
Original line number Diff line number Diff line
@@ -557,7 +557,7 @@ static const struct amdgpu_ring_funcs jpeg_v1_0_decode_ring_vm_funcs = {
	.nop = PACKET0(0x81ff, 0),
	.support_64bit_ptrs = false,
	.no_user_fence = true,
	.extra_dw = 64,
	.extra_bytes = 256,
	.get_rptr = jpeg_v1_0_decode_ring_get_rptr,
	.get_wptr = jpeg_v1_0_decode_ring_get_wptr,
	.set_wptr = jpeg_v1_0_decode_ring_set_wptr,
+1 −1
Original line number Diff line number Diff line
@@ -1977,7 +1977,7 @@ static struct amdgpu_ring_funcs vcn_v4_0_unified_ring_vm_funcs = {
	.type = AMDGPU_RING_TYPE_VCN_ENC,
	.align_mask = 0x3f,
	.nop = VCN_ENC_CMD_NO_OP,
	.extra_dw = sizeof(struct amdgpu_vcn_rb_metadata),
	.extra_bytes = sizeof(struct amdgpu_vcn_rb_metadata),
	.get_rptr = vcn_v4_0_unified_ring_get_rptr,
	.get_wptr = vcn_v4_0_unified_ring_get_wptr,
	.set_wptr = vcn_v4_0_unified_ring_set_wptr,