This patch is :-
Reviewed-by: Sathishkumar S <[email protected]>

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 <[email protected]>
---
  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);
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);

Reply via email to