]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: clean up jpeg reset functions
authorAlex Deucher <alexander.deucher@amd.com>
Fri, 11 Jul 2025 17:31:14 +0000 (13:31 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 16 Jul 2025 20:10:01 +0000 (16:10 -0400)
Make them consistent and use the reset flags.

Reviewed-by: Sathishkumar S <sathishkumar.sundararaju@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c

index 5ba1c5ad9a5e1d93fae08ce1061c774712debdd2..0b56cb67e8f1d688dfa51bb1e734823b820b43ea 100644 (file)
@@ -118,7 +118,8 @@ static int jpeg_v2_0_sw_init(struct amdgpu_ip_block *ip_block)
        if (r)
                return r;
 
-       adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
+       if (!amdgpu_sriov_vf(adev))
+               adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
        r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
 
        return r;
@@ -770,6 +771,9 @@ static int jpeg_v2_0_ring_reset(struct amdgpu_ring *ring,
 {
        int r;
 
+       if (!(ring->adev->jpeg.supported_reset & AMDGPU_RESET_TYPE_PER_QUEUE))
+               return -EOPNOTSUPP;
+
        drm_sched_wqueue_stop(&ring->sched);
        r = jpeg_v2_0_stop(ring->adev);
        if (r)
index 5be9cdcae32c18bdc8dfc1dcc4ebfad63d4323f8..3d0e61f9f285402a4bd010f8343fac562eda48e4 100644 (file)
@@ -167,7 +167,8 @@ static int jpeg_v2_5_sw_init(struct amdgpu_ip_block *ip_block)
        if (r)
                return r;
 
-       adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
+       if (!amdgpu_sriov_vf(adev))
+               adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
        r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
 
        return r;
@@ -649,6 +650,9 @@ static int jpeg_v2_5_ring_reset(struct amdgpu_ring *ring,
 {
        int r;
 
+       if (!(ring->adev->jpeg.supported_reset & AMDGPU_RESET_TYPE_PER_QUEUE))
+               return -EOPNOTSUPP;
+
        drm_sched_wqueue_stop(&ring->sched);
        jpeg_v2_5_stop_inst(ring->adev, ring->me);
        jpeg_v2_5_start_inst(ring->adev, ring->me);
index 5428930eafa3ea1ebce0fb16caa191347c12a781..5d54c882d889c016905cbe5bdddea0ee2f82c6a9 100644 (file)
@@ -132,7 +132,8 @@ static int jpeg_v3_0_sw_init(struct amdgpu_ip_block *ip_block)
        if (r)
                return r;
 
-       adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
+       if (!amdgpu_sriov_vf(adev))
+               adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
        r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
 
        return r;
@@ -561,6 +562,9 @@ static int jpeg_v3_0_ring_reset(struct amdgpu_ring *ring,
 {
        int r;
 
+       if (!(ring->adev->jpeg.supported_reset & AMDGPU_RESET_TYPE_PER_QUEUE))
+               return -EOPNOTSUPP;
+
        drm_sched_wqueue_stop(&ring->sched);
        r = jpeg_v3_0_stop(ring->adev);
        if (r)
index 78fe1924f3cb7f2e2ff47732ff9b2ab00740b0a4..5485e983a089fefccc46705a976818bc78f3f7a0 100644 (file)
@@ -143,7 +143,8 @@ static int jpeg_v4_0_sw_init(struct amdgpu_ip_block *ip_block)
        if (r)
                return r;
 
-       adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
+       if (!amdgpu_sriov_vf(adev))
+               adev->jpeg.supported_reset = AMDGPU_RESET_TYPE_PER_QUEUE;
        r = amdgpu_jpeg_sysfs_reset_mask_init(adev);
 
        return r;
@@ -726,8 +727,8 @@ static int jpeg_v4_0_ring_reset(struct amdgpu_ring *ring,
 {
        int r;
 
-       if (amdgpu_sriov_vf(ring->adev))
-               return -EINVAL;
+       if (!(ring->adev->jpeg.supported_reset & AMDGPU_RESET_TYPE_PER_QUEUE))
+               return -EOPNOTSUPP;
 
        drm_sched_wqueue_stop(&ring->sched);
        r = jpeg_v4_0_stop(ring->adev);