[PATCH 6/7] drm/amdgpu/jpeg: mmsch_v3_0_4 requires doorbell on 32 byte boundary

Lazar, Lijo lijo.lazar at amd.com
Fri Jul 21 13:30:09 UTC 2023



On 7/21/2023 12:49 AM, Samir Dhume wrote:
> Signed-off-by: Samir Dhume <samir.dhume at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c | 17 ++++++++++++++---
>   1 file changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c
> index 85ee74fdb7e3..896e2f895884 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c
> @@ -111,9 +111,20 @@ static int jpeg_v4_0_3_sw_init(void *handle)
>   			ring = &adev->jpeg.inst[i].ring_dec[j];
>   			ring->use_doorbell = true;
>   			ring->vm_hub = AMDGPU_MMHUB0(adev->jpeg.inst[i].aid_id);
> -			ring->doorbell_index =
> -				(adev->doorbell_index.vcn.vcn_ring0_1 << 1) +
> -				1 + j + 9 * jpeg_inst;
> +			if (!amdgpu_sriov_vf(adev)) {
> +				ring->doorbell_index =
> +					(adev->doorbell_index.vcn.vcn_ring0_1 << 1) +
> +					1 + j + 9 * jpeg_inst;
> +			} else {
> +				if (j < 4)
> +					ring->doorbell_index =
> +						(adev->doorbell_index.vcn.vcn_ring0_1 << 1) +
> +						4 + j + 32 * jpeg_inst;

Is the requirement to have the index at a 32-byte aligned boundary?

Thanks,
Lijo

> +				else
> +					ring->doorbell_index =
> +						(adev->doorbell_index.vcn.vcn_ring0_1 << 1) +
> +						8 + j + 32 * jpeg_inst;
> +			}
>   			sprintf(ring->name, "jpeg_dec_%d.%d", adev->jpeg.inst[i].aid_id, j);
>   			r = amdgpu_ring_init(adev, ring, 512, &adev->jpeg.inst->irq, 0,
>   						AMDGPU_RING_PRIO_DEFAULT, NULL);


More information about the amd-gfx mailing list