On Tue, Jun 16, 2026 at 8:59 AM Tiago Dourado <[email protected]> wrote:
>
> 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 reuse the jpeg_v5_0_0 version via a macro alias.
> Export jpeg_v5_0_0_process_interrupt through jpeg_v5_0_0.h to allow
> cross-version reuse.
>
> Signed-off-by: Tiago Dourado <[email protected]>
> Co-developed-by: Luiz Fernandes <[email protected]>
> Signed-off-by: Luiz Fernandes <[email protected]>
> ---
>  drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c |  2 +-
>  drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h |  4 ++++
>  drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c | 22 +++-------------------
>  3 files changed, 8 insertions(+), 20 deletions(-)
>
> 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 46bf15dce..4575d1f9d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
> @@ -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)
>  {
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h 
> b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h
> index 5abb96159..4eeb0c147 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.h
> @@ -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__ */
> diff --git a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c 
> b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c
> index 1821dced9..92aaf5dea 100644
> --- a/drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c
> @@ -32,8 +32,11 @@
>  #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"
>
> +#define jpeg_v5_3_0_process_interrupt jpeg_v5_0_0_process_interrupt

Same comment as patch 1.

Alex

> +
>  static void jpeg_v5_3_0_set_dec_ring_funcs(struct amdgpu_device *adev);
>  static void jpeg_v5_3_0_set_irq_funcs(struct amdgpu_device *adev);
>  static int jpeg_v5_3_0_set_powergating_state(struct amdgpu_ip_block 
> *ip_block,
> @@ -608,25 +611,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)
> --
> 2.43.0
>

Reply via email to