[PATCH v3 1/5] drm/amdgpu/vcn: refactor dec message functions

Christian König ckoenig.leichtzumerken at gmail.com
Thu Nov 19 07:59:35 UTC 2020


Am 18.11.20 um 17:23 schrieb James Zhu:
> refactor dec message functions to add dec software ring support.
>
> Signed-off-by: James Zhu <James.Zhu at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 30 +++++++++++++++++++-----------
>   1 file changed, 19 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> index 7e19a66..32251db 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
> @@ -510,16 +510,16 @@ static int amdgpu_vcn_dec_send_msg(struct amdgpu_ring *ring,
>   }
>   
>   static int amdgpu_vcn_dec_get_create_msg(struct amdgpu_ring *ring, uint32_t handle,
> -			      struct dma_fence **fence)
> +					 struct amdgpu_bo **bo)
>   {
>   	struct amdgpu_device *adev = ring->adev;
> -	struct amdgpu_bo *bo = NULL;
>   	uint32_t *msg;
>   	int r, i;
>   
> +	*bo = NULL;

This looks unnecessary to me.

>   	r = amdgpu_bo_create_reserved(adev, 1024, PAGE_SIZE,
>   				      AMDGPU_GEM_DOMAIN_VRAM,
> -				      &bo, NULL, (void **)&msg);
> +				      bo, NULL, (void **)&msg);
>   	if (r)
>   		return r;
>   
> @@ -540,20 +540,20 @@ static int amdgpu_vcn_dec_get_create_msg(struct amdgpu_ring *ring, uint32_t hand
>   	for (i = 14; i < 1024; ++i)
>   		msg[i] = cpu_to_le32(0x0);
>   
> -	return amdgpu_vcn_dec_send_msg(ring, bo, fence);
> +	return 0;
>   }
>   
>   static int amdgpu_vcn_dec_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle,
> -			       struct dma_fence **fence)
> +					  struct amdgpu_bo **bo)
>   {
>   	struct amdgpu_device *adev = ring->adev;
> -	struct amdgpu_bo *bo = NULL;
>   	uint32_t *msg;
>   	int r, i;
>   
> +	*bo = NULL;

Same here.

Apart from that looks good to me.

With that fixed the patch is Reviewed-by: Christian König 
<christian.koenig at amd.com>

Regards,
Christian.

>   	r = amdgpu_bo_create_reserved(adev, 1024, PAGE_SIZE,
>   				      AMDGPU_GEM_DOMAIN_VRAM,
> -				      &bo, NULL, (void **)&msg);
> +				      bo, NULL, (void **)&msg);
>   	if (r)
>   		return r;
>   
> @@ -566,19 +566,27 @@ static int amdgpu_vcn_dec_get_destroy_msg(struct amdgpu_ring *ring, uint32_t han
>   	for (i = 6; i < 1024; ++i)
>   		msg[i] = cpu_to_le32(0x0);
>   
> -	return amdgpu_vcn_dec_send_msg(ring, bo, fence);
> +	return 0;
>   }
>   
>   int amdgpu_vcn_dec_ring_test_ib(struct amdgpu_ring *ring, long timeout)
>   {
> -	struct dma_fence *fence;
> +	struct dma_fence *fence = NULL;
> +	struct amdgpu_bo *bo;
>   	long r;
>   
> -	r = amdgpu_vcn_dec_get_create_msg(ring, 1, NULL);
> +	r = amdgpu_vcn_dec_get_create_msg(ring, 1, &bo);
> +	if (r)
> +		goto error;
> +
> +	r = amdgpu_vcn_dec_send_msg(ring, bo, NULL);
> +	if (r)
> +		goto error;
> +	r = amdgpu_vcn_dec_get_destroy_msg(ring, 1, &bo);
>   	if (r)
>   		goto error;
>   
> -	r = amdgpu_vcn_dec_get_destroy_msg(ring, 1, &fence);
> +	r = amdgpu_vcn_dec_send_msg(ring, bo, &fence);
>   	if (r)
>   		goto error;
>   



More information about the amd-gfx mailing list