All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: <intel-gfx@lists.freedesktop.org>, <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH 3/3] drm/i915/irq: remove GEN8_IRQ_RESET_NDX() and GEN8_IRQ_INIT_NDX() macros
Date: Thu, 26 Sep 2024 15:14:49 -0400	[thread overview]
Message-ID: <ZvWyqYAaZ9q-EKKZ@intel.com> (raw)
In-Reply-To: <8b2a2b5b56fc38187f510b3bc439c652f6ad96b8.1727369787.git.jani.nikula@intel.com>

On Thu, Sep 26, 2024 at 07:57:48PM +0300, Jani Nikula wrote:
> Define register offset triplets for all registers used with
> GEN8_IRQ_RESET_NDX() and GEN8_IRQ_INIT_NDX() macros, and call the
> underlying gen3_irq_reset() and gen3_irq_init() functions
> directly. Remove the macros, along with the macro name concatenation
> hackery.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  .../gpu/drm/i915/display/intel_display_irq.c   | 18 +++++++++---------
>  drivers/gpu/drm/i915/gt/intel_gt_irq.c         | 16 ++++++++--------
>  drivers/gpu/drm/i915/i915_irq.h                | 17 -----------------
>  drivers/gpu/drm/i915/i915_reg.h                |  8 ++++++++
>  4 files changed, 25 insertions(+), 34 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display_irq.c b/drivers/gpu/drm/i915/display/intel_display_irq.c
> index 5c6b9918ed3a..ed243283ba6b 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_irq.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_irq.c
> @@ -1546,7 +1546,7 @@ void gen8_display_irq_reset(struct drm_i915_private *dev_priv)
>  	for_each_pipe(dev_priv, pipe)
>  		if (intel_display_power_is_enabled(dev_priv,
>  						   POWER_DOMAIN_PIPE(pipe)))
> -			GEN8_IRQ_RESET_NDX(uncore, DE_PIPE, pipe);
> +			gen3_irq_reset(uncore, GEN8_DE_PIPE_IRQ_REGS(pipe));
>  
>  	gen3_irq_reset(uncore, GEN8_DE_PORT_IRQ_REGS);
>  	gen3_irq_reset(uncore, GEN8_DE_MISC_IRQ_REGS);
> @@ -1589,7 +1589,7 @@ void gen11_display_irq_reset(struct drm_i915_private *dev_priv)
>  	for_each_pipe(dev_priv, pipe)
>  		if (intel_display_power_is_enabled(dev_priv,
>  						   POWER_DOMAIN_PIPE(pipe)))
> -			GEN8_IRQ_RESET_NDX(uncore, DE_PIPE, pipe);
> +			gen3_irq_reset(uncore, GEN8_DE_PIPE_IRQ_REGS(pipe));
>  
>  	gen3_irq_reset(uncore, GEN8_DE_PORT_IRQ_REGS);
>  	gen3_irq_reset(uncore, GEN8_DE_MISC_IRQ_REGS);
> @@ -1620,9 +1620,9 @@ void gen8_irq_power_well_post_enable(struct drm_i915_private *dev_priv,
>  	}
>  
>  	for_each_pipe_masked(dev_priv, pipe, pipe_mask)
> -		GEN8_IRQ_INIT_NDX(uncore, DE_PIPE, pipe,
> -				  dev_priv->display.irq.de_irq_mask[pipe],
> -				  ~dev_priv->display.irq.de_irq_mask[pipe] | extra_ier);
> +		gen3_irq_init(uncore, GEN8_DE_PIPE_IRQ_REGS(pipe),
> +			      dev_priv->display.irq.de_irq_mask[pipe],
> +			      ~dev_priv->display.irq.de_irq_mask[pipe] | extra_ier);
>  
>  	spin_unlock_irq(&dev_priv->irq_lock);
>  }
> @@ -1641,7 +1641,7 @@ void gen8_irq_power_well_pre_disable(struct drm_i915_private *dev_priv,
>  	}
>  
>  	for_each_pipe_masked(dev_priv, pipe, pipe_mask)
> -		GEN8_IRQ_RESET_NDX(uncore, DE_PIPE, pipe);
> +		gen3_irq_reset(uncore, GEN8_DE_PIPE_IRQ_REGS(pipe));
>  
>  	spin_unlock_irq(&dev_priv->irq_lock);
>  
> @@ -1829,9 +1829,9 @@ void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
>  
>  		if (intel_display_power_is_enabled(dev_priv,
>  						   POWER_DOMAIN_PIPE(pipe)))
> -			GEN8_IRQ_INIT_NDX(uncore, DE_PIPE, pipe,
> -					  dev_priv->display.irq.de_irq_mask[pipe],
> -					  de_pipe_enables);
> +			gen3_irq_init(uncore, GEN8_DE_PIPE_IRQ_REGS(pipe),
> +				      dev_priv->display.irq.de_irq_mask[pipe],
> +				      de_pipe_enables);
>  	}
>  
>  	gen3_irq_init(uncore, GEN8_DE_PORT_IRQ_REGS, ~de_port_masked, de_port_enables);
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_irq.c b/drivers/gpu/drm/i915/gt/intel_gt_irq.c
> index fbb3117e324a..0c1e405240af 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_irq.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_irq.c
> @@ -452,10 +452,10 @@ void gen8_gt_irq_reset(struct intel_gt *gt)
>  {
>  	struct intel_uncore *uncore = gt->uncore;
>  
> -	GEN8_IRQ_RESET_NDX(uncore, GT, 0);
> -	GEN8_IRQ_RESET_NDX(uncore, GT, 1);
> -	GEN8_IRQ_RESET_NDX(uncore, GT, 2);
> -	GEN8_IRQ_RESET_NDX(uncore, GT, 3);
> +	gen3_irq_reset(uncore, GEN8_GT_IRQ_REGS(0));
> +	gen3_irq_reset(uncore, GEN8_GT_IRQ_REGS(1));
> +	gen3_irq_reset(uncore, GEN8_GT_IRQ_REGS(2));
> +	gen3_irq_reset(uncore, GEN8_GT_IRQ_REGS(3));
>  }
>  
>  void gen8_gt_irq_postinstall(struct intel_gt *gt)
> @@ -476,14 +476,14 @@ void gen8_gt_irq_postinstall(struct intel_gt *gt)
>  
>  	gt->pm_ier = 0x0;
>  	gt->pm_imr = ~gt->pm_ier;
> -	GEN8_IRQ_INIT_NDX(uncore, GT, 0, ~gt_interrupts[0], gt_interrupts[0]);
> -	GEN8_IRQ_INIT_NDX(uncore, GT, 1, ~gt_interrupts[1], gt_interrupts[1]);
> +	gen3_irq_init(uncore, GEN8_GT_IRQ_REGS(0), ~gt_interrupts[0], gt_interrupts[0]);
> +	gen3_irq_init(uncore, GEN8_GT_IRQ_REGS(1), ~gt_interrupts[1], gt_interrupts[1]);
>  	/*
>  	 * RPS interrupts will get enabled/disabled on demand when RPS itself
>  	 * is enabled/disabled. Same wil be the case for GuC interrupts.
>  	 */
> -	GEN8_IRQ_INIT_NDX(uncore, GT, 2, gt->pm_imr, gt->pm_ier);
> -	GEN8_IRQ_INIT_NDX(uncore, GT, 3, ~gt_interrupts[3], gt_interrupts[3]);
> +	gen3_irq_init(uncore, GEN8_GT_IRQ_REGS(2), gt->pm_imr, gt->pm_ier);
> +	gen3_irq_init(uncore, GEN8_GT_IRQ_REGS(3), ~gt_interrupts[3], gt_interrupts[3]);
>  }
>  
>  static void gen5_gt_update_irq(struct intel_gt *gt,
> diff --git a/drivers/gpu/drm/i915/i915_irq.h b/drivers/gpu/drm/i915/i915_irq.h
> index 06a38671b32b..da3d97143511 100644
> --- a/drivers/gpu/drm/i915/i915_irq.h
> +++ b/drivers/gpu/drm/i915/i915_irq.h
> @@ -47,21 +47,4 @@ void gen3_irq_reset(struct intel_uncore *uncore, struct i915_irq_regs regs);
>  void gen3_irq_init(struct intel_uncore *uncore, struct i915_irq_regs regs,
>  		   u32 imr_val, u32 ier_val);
>  
> -#define GEN8_IRQ_RESET_NDX(uncore, type, which) \
> -({ \
> -	unsigned int which_ = which; \
> -	gen3_irq_reset((uncore), I915_IRQ_REGS(GEN8_##type##_IMR(which_), \
> -					       GEN8_##type##_IER(which_), \
> -					       GEN8_##type##_IIR(which_))); \
> -})
> -
> -#define GEN8_IRQ_INIT_NDX(uncore, type, which, imr_val, ier_val) \
> -({ \
> -	unsigned int which_ = which; \
> -	gen3_irq_init((uncore), I915_IRQ_REGS(GEN8_##type##_IMR(which_), \
> -					      GEN8_##type##_IER(which_), \
> -					      GEN8_##type##_IIR(which_)), \
> -		      imr_val, ier_val); \
> -})
> -
>  #endif /* __I915_IRQ_H__ */
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 818fb71f7efc..818142f5a10c 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2491,6 +2491,10 @@
>  #define GEN8_GT_IIR(which) _MMIO(0x44308 + (0x10 * (which)))
>  #define GEN8_GT_IER(which) _MMIO(0x4430c + (0x10 * (which)))
>  
> +#define GEN8_GT_IRQ_REGS(which)		I915_IRQ_REGS(GEN8_GT_IMR(which), \
> +						      GEN8_GT_IER(which), \
> +						      GEN8_GT_IIR(which))
> +
>  #define GEN8_RCS_IRQ_SHIFT 0
>  #define GEN8_BCS_IRQ_SHIFT 16
>  #define GEN8_VCS0_IRQ_SHIFT 0  /* NB: VCS1 in bspec! */
> @@ -2542,6 +2546,10 @@
>  #define  GEN8_PIPE_VSYNC		REG_BIT(1)
>  #define  GEN8_PIPE_VBLANK		REG_BIT(0)
>  
> +#define GEN8_DE_PIPE_IRQ_REGS(pipe)	I915_IRQ_REGS(GEN8_DE_PIPE_IMR(pipe), \
> +						      GEN8_DE_PIPE_IER(pipe), \
> +						      GEN8_DE_PIPE_IIR(pipe))
> +
>  #define _HPD_PIN_DDI(hpd_pin)	((hpd_pin) - HPD_PORT_A)
>  #define _HPD_PIN_TC(hpd_pin)	((hpd_pin) - HPD_PORT_TC1)
>  
> -- 
> 2.39.2
> 

  reply	other threads:[~2024-09-26 19:14 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-26 16:57 [PATCH 0/3] drm/i915/irq: clean up irq reset/init macro hacks Jani Nikula
2024-09-26 16:57 ` [PATCH 1/3] drm/i915/irq: add struct i915_irq_regs triplet Jani Nikula
2024-09-26 19:12   ` Rodrigo Vivi
2024-09-27  8:04     ` Jani Nikula
2024-09-26 16:57 ` [PATCH 2/3] drm/i915/irq: remove GEN3_IRQ_RESET() and GEN3_IRQ_INIT() macros Jani Nikula
2024-09-26 19:13   ` Rodrigo Vivi
2024-09-26 16:57 ` [PATCH 3/3] drm/i915/irq: remove GEN8_IRQ_RESET_NDX() and GEN8_IRQ_INIT_NDX() macros Jani Nikula
2024-09-26 19:14   ` Rodrigo Vivi [this message]
2024-09-26 19:53 ` ✓ CI.Patch_applied: success for drm/i915/irq: clean up irq reset/init macro hacks Patchwork
2024-09-26 19:53 ` ✗ CI.checkpatch: warning " Patchwork
2024-09-26 19:55 ` ✓ CI.KUnit: success " Patchwork
2024-09-26 20:06 ` ✓ CI.Build: " Patchwork
2024-09-26 20:09 ` ✓ CI.Hooks: " Patchwork
2024-09-26 20:10 ` ✗ CI.checksparse: warning " Patchwork
2024-09-27 10:23   ` Jani Nikula
2024-09-26 20:36 ` ✓ CI.BAT: success " Patchwork
2024-09-27 21:36 ` ✗ CI.FULL: failure " Patchwork
2024-09-30 18:20 ` ✓ CI.Patch_applied: success for drm/i915/irq: clean up irq reset/init macro hacks (rev2) Patchwork
2024-09-30 18:21 ` ✗ CI.checkpatch: warning " Patchwork
2024-09-30 18:22 ` ✓ CI.KUnit: success " Patchwork
2024-09-30 18:33 ` ✓ CI.Build: " Patchwork
2024-09-30 18:36 ` ✓ CI.Hooks: " Patchwork
2024-09-30 18:37 ` ✗ CI.checksparse: warning " Patchwork
2024-09-30 19:02 ` ✗ CI.BAT: failure " Patchwork
2024-10-01  0:34 ` ✗ CI.FULL: " Patchwork
2024-10-01  2:46 ` ✗ Fi.CI.CHECKPATCH: warning " Patchwork
2024-10-01  2:46 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-10-01  2:55 ` ✓ Fi.CI.BAT: success " Patchwork
2024-10-01 16:25 ` ✗ Fi.CI.IGT: failure " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZvWyqYAaZ9q-EKKZ@intel.com \
    --to=rodrigo.vivi@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.