[PATCH 1/2] drm/amdgpu/jpeg: clean up reset type handling

Lazar, Lijo lijo.lazar at amd.com
Thu Jul 17 06:36:40 UTC 2025



On 7/15/2025 9:30 PM, Alex Deucher wrote:
> Make the handling consistent with other IPs and across
> JPEG versions.
> 
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c   |  4 +++-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c   |  4 +++-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c   |  4 +++-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c   |  4 +++-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c | 14 ++++++--------
>  drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c |  2 +-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c |  7 +++----
>  drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c | 16 +++++++---------
>  8 files changed, 29 insertions(+), 26 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c
> index 554af4b9930e3..b93d6af8f6e54 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c
> @@ -118,8 +118,10 @@ static int jpeg_v2_0_sw_init(struct amdgpu_ip_block *ip_block)
>  	if (r)
>  		return r;
>  
> +	adev->jpeg.supported_reset =
> +		amdgpu_get_soft_full_reset_mask(adev->jpeg.inst[0].ring_dec);
>  	if (!amdgpu_sriov_vf(adev))
> -		adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
> +		adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE;
>  	r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
>  
>  	return r;
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
> index 4e489a7e21157..b6d5ba0bdc143 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
> @@ -167,8 +167,10 @@ static int jpeg_v2_5_sw_init(struct amdgpu_ip_block *ip_block)
>  	if (r)
>  		return r;
>  
> +	adev->jpeg.supported_reset =
> +		amdgpu_get_soft_full_reset_mask(adev->jpeg.inst[0].ring_dec);
>  	if (!amdgpu_sriov_vf(adev))
> -		adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
> +		adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE;
>  	r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
>  
>  	return r;
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c
> index d4bc4fca460c8..a229d7eb900c9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c
> @@ -132,8 +132,10 @@ static int jpeg_v3_0_sw_init(struct amdgpu_ip_block *ip_block)
>  	if (r)
>  		return r;
>  
> +	adev->jpeg.supported_reset =
> +		amdgpu_get_soft_full_reset_mask(adev->jpeg.inst[0].ring_dec);
>  	if (!amdgpu_sriov_vf(adev))
> -		adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
> +		adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE;
>  	r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
>  
>  	return r;
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c
> index ca3debe371c5a..f3a9073b8b243 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c
> @@ -143,8 +143,10 @@ static int jpeg_v4_0_sw_init(struct amdgpu_ip_block *ip_block)
>  	if (r)
>  		return r;
>  
> +	adev->jpeg.supported_reset =
> +		amdgpu_get_soft_full_reset_mask(adev->jpeg.inst[0].ring_dec);
>  	if (!amdgpu_sriov_vf(adev))
> -		adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
> +		adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE;
>  	r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
>  
>  	return r;
> 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 c3f73a2a911b4..b86288a69e7b7 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c
> @@ -216,12 +216,11 @@ static int jpeg_v4_0_3_sw_init(struct amdgpu_ip_block *ip_block)
>  	if (r)
>  		return r;
>  
> -	if (!amdgpu_sriov_vf(adev)) {
> -		adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
> -		r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
> -		if (r)
> -			return r;
> -	}
> +	adev->jpeg.supported_reset =
> +		amdgpu_get_soft_full_reset_mask(adev->jpeg.inst[0].ring_dec);
> +	if (!amdgpu_sriov_vf(adev))
> +		adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE;
> +	r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
>  

Looks like most places above/below can be shortened to -
	return amdgpu_jpeg_sysfs_reset_mask_init(adev);

Not sure if 4.0.3 alone needs an exception.

Thanks,
Lijo

>  	return 0;
>  }
> @@ -242,8 +241,7 @@ static int jpeg_v4_0_3_sw_fini(struct amdgpu_ip_block *ip_block)
>  	if (r)
>  		return r;
>  
> -	if (!amdgpu_sriov_vf(adev))
> -		amdgpu_jpeg_sysfs_reset_mask_fini(adev);
> +	amdgpu_jpeg_sysfs_reset_mask_fini(adev);
>  
>  	r = amdgpu_jpeg_sw_fini(adev);
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c
> index 5a69a44e0f855..1892c278ea3c4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c
> @@ -177,7 +177,7 @@ static int jpeg_v4_0_5_sw_init(struct amdgpu_ip_block *ip_block)
>  	adev->jpeg.supported_reset =
>  		amdgpu_get_soft_full_reset_mask(&adev->jpeg.inst[0].ring_dec[0]);
>  	if (!amdgpu_sriov_vf(adev))
> -		adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
> +		adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE;
>  	r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
>  	if (r)
>  		return r;
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
> index d6b565c29b4b2..0b4de0c6476ae 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
> @@ -123,11 +123,10 @@ static int jpeg_v5_0_0_sw_init(struct amdgpu_ip_block *ip_block)
>  	adev->jpeg.supported_reset =
>  		amdgpu_get_soft_full_reset_mask(&adev->jpeg.inst[0].ring_dec[0]);
>  	if (!amdgpu_sriov_vf(adev))
> -		adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
> +		adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE;
>  	r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
> -	if (r)
> -		return r;
> -	return 0;
> +
> +	return r;
>  }
>  
>  /**
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c
> index 5473cbaa5c0e8..e622db1f818bf 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c
> @@ -200,14 +200,13 @@ static int jpeg_v5_0_1_sw_init(struct amdgpu_ip_block *ip_block)
>  	if (r)
>  		return r;
>  
> -	if (!amdgpu_sriov_vf(adev)) {
> -		adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
> -		r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
> -		if (r)
> -			return r;
> -	}
> +	adev->jpeg.supported_reset =
> +		amdgpu_get_soft_full_reset_mask(&adev->jpeg.inst[0].ring_dec[0]);
> +	if (!amdgpu_sriov_vf(adev))
> +		adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE;
> +	r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
>  
> -	return 0;
> +	return r;
>  }
>  
>  /**
> @@ -226,8 +225,7 @@ static int jpeg_v5_0_1_sw_fini(struct amdgpu_ip_block *ip_block)
>  	if (r)
>  		return r;
>  
> -	if (!amdgpu_sriov_vf(adev))
> -		amdgpu_jpeg_sysfs_reset_mask_fini(adev);
> +	amdgpu_jpeg_sysfs_reset_mask_fini(adev);
>  
>  	r = amdgpu_jpeg_sw_fini(adev);
>  



More information about the amd-gfx mailing list