I forgot to forward this to [email protected], so I'm doing that 
now.
-Jonathan Cavitt

-----Original Message-----
From: Cavitt, Jonathan <[email protected]> 
Sent: Thursday, June 4, 2026 1:10 PM
To: [email protected]
Cc: Gupta, Saurabhg <[email protected]>; Zuo, Alex <[email protected]>; 
Cavitt, Jonathan <[email protected]>; Jadav, Raag <[email protected]>
Subject: [PATCH] drm/{i915, xe}: Refactor generic_handle_irq_safe() error 
messages
> 
> Currently, all but one uses of generic_handle_irq_safe() report error
> messages using .*_err_ratelimited() error reporting helper functions.
> These helper functions declare their error messages in the following
> form:
> 
> "error handling [COMPONENT NAME] irq: %d\n"
> 
> .*_err_ratelimited() already logs "error" as a part of the error
> message, so declaring the error is redundant.  Reword it.
> 
> The last usage of generic_handle_irq_safe() is in xe_i2c_irq_handler(),
> and it currently lacks the same error reporting that the other cases
> have.  This is not intentional, so add error reporting to this location.
> 
> Suggested-by: Raag Jadav <[email protected]>
> Signed-off-by: Jonathan Cavitt <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_lpe_audio.c | 2 +-
>  drivers/gpu/drm/i915/gt/intel_gsc.c            | 2 +-
>  drivers/gpu/drm/xe/xe_heci_gsc.c               | 4 ++--
>  drivers/gpu/drm/xe/xe_i2c.c                    | 5 ++++-
>  4 files changed, 8 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_lpe_audio.c 
> b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> index 022ad18044bf..e756ed1d1132 100644
> --- a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> @@ -265,7 +265,7 @@ void intel_lpe_audio_irq_handler(struct intel_display 
> *display)
>       ret = generic_handle_irq_safe(display->audio.lpe.irq);
>       if (ret)
>               drm_err_ratelimited(display->drm,
> -                                 "error handling LPE audio irq: %d\n", ret);
> +                                 "failed to handle LPE audio irq: %d\n", 
> ret);
>  }
>  
>  /**
> diff --git a/drivers/gpu/drm/i915/gt/intel_gsc.c 
> b/drivers/gpu/drm/i915/gt/intel_gsc.c
> index 050d909fb4f8..c2d76b0bc5fe 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gsc.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gsc.c
> @@ -286,7 +286,7 @@ static void gsc_irq_handler(struct intel_gt *gt, unsigned 
> int intf_id)
>  
>       ret = generic_handle_irq_safe(gt->gsc.intf[intf_id].irq);
>       if (ret)
> -             gt_err_ratelimited(gt, "error handling GSC irq: %d\n", ret);
> +             gt_err_ratelimited(gt, "failed to handle GSC irq: %d\n", ret);
>  }
>  
>  void intel_gsc_irq_handler(struct intel_gt *gt, u32 iir)
> diff --git a/drivers/gpu/drm/xe/xe_heci_gsc.c 
> b/drivers/gpu/drm/xe/xe_heci_gsc.c
> index 5af8903e10af..640db27137de 100644
> --- a/drivers/gpu/drm/xe/xe_heci_gsc.c
> +++ b/drivers/gpu/drm/xe/xe_heci_gsc.c
> @@ -224,7 +224,7 @@ void xe_heci_gsc_irq_handler(struct xe_device *xe, u32 
> iir)
>  
>       ret = generic_handle_irq_safe(xe->heci_gsc.irq);
>       if (ret)
> -             drm_err_ratelimited(&xe->drm, "error handling GSC irq: %d\n", 
> ret);
> +             drm_err_ratelimited(&xe->drm, "failed to handle GSC irq: %d\n", 
> ret);
>  }
>  
>  void xe_heci_csc_irq_handler(struct xe_device *xe, u32 iir)
> @@ -244,5 +244,5 @@ void xe_heci_csc_irq_handler(struct xe_device *xe, u32 
> iir)
>  
>       ret = generic_handle_irq_safe(xe->heci_gsc.irq);
>       if (ret)
> -             drm_err_ratelimited(&xe->drm, "error handling GSC irq: %d\n", 
> ret);
> +             drm_err_ratelimited(&xe->drm, "failed to handle GSC irq: %d\n", 
> ret);
>  }
> diff --git a/drivers/gpu/drm/xe/xe_i2c.c b/drivers/gpu/drm/xe/xe_i2c.c
> index 706783863d07..0f689e210e26 100644
> --- a/drivers/gpu/drm/xe/xe_i2c.c
> +++ b/drivers/gpu/drm/xe/xe_i2c.c
> @@ -177,12 +177,15 @@ static bool xe_i2c_irq_present(struct xe_device *xe)
>  void xe_i2c_irq_handler(struct xe_device *xe, u32 master_ctl)
>  {
>       struct xe_mmio *mmio = xe_root_tile_mmio(xe);
> +     int ret;
>  
>       if (!(master_ctl & I2C_IRQ) || !xe_i2c_irq_present(xe))
>               return;
>  
>       /* Forward interrupt to I2C adapter */
> -     generic_handle_irq_safe(xe->i2c->adapter_irq);
> +     ret = generic_handle_irq_safe(xe->i2c->adapter_irq);
> +     if (ret)
> +             drm_err_ratelimited("failed to handle i2c irq: %d\n", ret);
>  
>       /* Deassert after I2C adapter clears the interrupt */
>       xe_mmio_rmw32(mmio, I2C_CONFIG_CMD, 0, PCI_COMMAND_INTX_DISABLE);
> -- 
> 2.53.0
> 
> 

Reply via email to