On 09.09.25 16:49, Timur Kristóf wrote: > 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: c8c1a1d2ef04 ("drm/amdgpu: define and add extra dword for jpeg ring") > Signed-off-by: Timur Kristóf <timur.kris...@gmail.com>
Reviewed-by: Christian König <christian.koe...@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 11 ++++++----- > drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 13 ++++++++++++- > drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 2 +- > 4 files changed, 20 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c > index 6379bb25bf5c..eca8b28e3fb9 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c > @@ -364,11 +364,12 @@ 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, > - AMDGPU_GEM_DOMAIN_GTT, > - &ring->ring_obj, > - &ring->gpu_addr, > - (void **)&ring->ring); > + 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, > + (void **)&ring->ring); > if (r) { > dev_err(adev->dev, "(%d) ring create failed\n", r); > kvfree(ring->ring_backup); > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h > index 7670f5d82b9e..12783ea3ba0f 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h > @@ -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); > diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c > b/drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c > index 9e428e669ada..b5bb7f4d607c 100644 > --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c > @@ -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, > diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c > b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c > index d0d27790b73b..099698cb1a3d 100644 > --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c > +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c > @@ -1986,7 +1986,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,