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,

Reply via email to