]> git.hungrycats.org Git - linux/commitdiff
drm/amdgpu/jpeg: deduplicate jpeg_v5_3_0 process_interrupt
authorTiago Dourado <tiagodourado@usp.br>
Fri, 26 Jun 2026 02:59:13 +0000 (23:59 -0300)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 8 Jul 2026 18:20:29 +0000 (14:20 -0400)
The jpeg_v5_3_0_process_interrupt function is identical to
jpeg_v5_0_0_process_interrupt. Remove the duplicate implementation
in jpeg_v5_3_0 and assign the jpeg_v5_0_0 version directly to the irq_funcs struct.
Export jpeg_v5_0_0_process_interrupt through jpeg_v5_0_0.h to allow
cross-version reuse.

Signed-off-by: Tiago Dourado <tiagodourado@usp.br>
Co-developed-by: Luiz Fernandes <luiz.f.f.fernandes@usp.br>
Signed-off-by: Luiz Fernandes <luiz.f.f.fernandes@usp.br>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h
drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c

index 72a4b2d0676fa4cc7af52c93bef2febed2de8cb4..1cdbe353ae400a2aa0b008f393f14061e32c01bb 100644 (file)
@@ -625,7 +625,7 @@ static int jpeg_v5_0_0_set_interrupt_state(struct amdgpu_device *adev,
        return 0;
 }
 
-static int jpeg_v5_0_0_process_interrupt(struct amdgpu_device *adev,
+int jpeg_v5_0_0_process_interrupt(struct amdgpu_device *adev,
                                      struct amdgpu_irq_src *source,
                                      struct amdgpu_iv_entry *entry)
 {
index 5abb9615981455f6dd0c49dc7c7fea8932980a5c..4eeb0c14702ca709d0702156b415a40c66c18910 100644 (file)
@@ -32,4 +32,8 @@
 
 extern const struct amdgpu_ip_block_version jpeg_v5_0_0_ip_block;
 
+int jpeg_v5_0_0_process_interrupt(struct amdgpu_device *adev,
+                                 struct amdgpu_irq_src *source,
+                                 struct amdgpu_iv_entry *entry);
+
 #endif /* __JPEG_V5_0_0_H__ */
index e7546816baba34e13fb521a687e71a3fefbda8da..66d4c487eee5a962af5da176c199e45a7162ebb5 100644 (file)
@@ -32,6 +32,7 @@
 #include "vcn/vcn_5_3_0_offset.h"
 #include "vcn/vcn_5_3_0_sh_mask.h"
 #include "ivsrcid/vcn/irqsrcs_vcn_5_0.h"
+#include "jpeg_v5_0_0.h"
 #include "jpeg_v5_3_0.h"
 
 static void jpeg_v5_3_0_set_dec_ring_funcs(struct amdgpu_device *adev);
@@ -608,25 +609,6 @@ static int jpeg_v5_3_0_set_interrupt_state(struct amdgpu_device *adev,
        return 0;
 }
 
-static int jpeg_v5_3_0_process_interrupt(struct amdgpu_device *adev,
-                                     struct amdgpu_irq_src *source,
-                                     struct amdgpu_iv_entry *entry)
-{
-       DRM_DEBUG("IH: JPEG TRAP\n");
-
-       switch (entry->src_id) {
-       case VCN_5_0__SRCID__JPEG_DECODE:
-               amdgpu_fence_process(adev->jpeg.inst->ring_dec);
-               break;
-       default:
-               DRM_DEV_ERROR(adev->dev, "Unhandled interrupt: %d %d\n",
-                         entry->src_id, entry->src_data[0]);
-               break;
-       }
-
-       return 0;
-}
-
 static int jpeg_v5_3_0_ring_reset(struct amdgpu_ring *ring,
                                  unsigned int vmid,
                                  struct amdgpu_fence *timedout_fence)
@@ -697,7 +679,7 @@ static void jpeg_v5_3_0_set_dec_ring_funcs(struct amdgpu_device *adev)
 
 static const struct amdgpu_irq_src_funcs jpeg_v5_3_0_irq_funcs = {
        .set = jpeg_v5_3_0_set_interrupt_state,
-       .process = jpeg_v5_3_0_process_interrupt,
+       .process = jpeg_v5_0_0_process_interrupt,
 };
 
 static void jpeg_v5_3_0_set_irq_funcs(struct amdgpu_device *adev)