[Intel-gfx] [PATCH 3/5] drm/i915: add GEN2_ prefix to the I{E, I, M, S}R registers
Ville Syrjälä
ville.syrjala at linux.intel.com
Fri Apr 12 07:33:22 UTC 2019
On Wed, Apr 10, 2019 at 04:53:42PM -0700, Paulo Zanoni wrote:
> This discussion started because we use token pasting in the
> GEN{2,3}_IRQ_INIT and GEN{2,3}_IRQ_RESET macros, so gen2-4 passes an
> empty argument to those macros, making the code a little weird. The
> original proposal was to just add a comment as the empty argument, but
> Ville suggested we just add a prefix to the registers, and that indeed
> sounds like a more elegant solution.
>
> Now doing this is kinda against our rules for register naming since we
> only add gens or platform names as register prefixes when the given
> gen/platform changes a register that already existed before. On the
> other hand, we have so many instances of IIR/IMR in comments that
> adding a prefix would make the users of these register more easily
> findable, in addition to make our token pasting macros actually
> readable. So IMHO opening an exception here is worth it.
>
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
> ---
> drivers/gpu/drm/i915/i915_debugfs.c | 6 +--
> drivers/gpu/drm/i915/i915_gpu_error.c | 4 +-
> drivers/gpu/drm/i915/i915_irq.c | 52 ++++++++++++-------------
> drivers/gpu/drm/i915/i915_reg.h | 8 ++--
> drivers/gpu/drm/i915/i915_reset.c | 3 +-
> drivers/gpu/drm/i915/intel_overlay.c | 4 +-
> drivers/gpu/drm/i915/intel_ringbuffer.c | 10 ++---
> 7 files changed, 44 insertions(+), 43 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 77b3252bdb2e..5823ffb17821 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -833,11 +833,11 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
>
> } else if (!HAS_PCH_SPLIT(dev_priv)) {
> seq_printf(m, "Interrupt enable: %08x\n",
> - I915_READ(IER));
> + I915_READ(GEN2_IER));
> seq_printf(m, "Interrupt identity: %08x\n",
> - I915_READ(IIR));
> + I915_READ(GEN2_IIR));
> seq_printf(m, "Interrupt mask: %08x\n",
> - I915_READ(IMR));
> + I915_READ(GEN2_IMR));
> for_each_pipe(dev_priv, pipe)
> seq_printf(m, "Pipe %c stat: %08x\n",
> pipe_name(pipe),
> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
> index 43b68fdc8967..f51ff683dd2e 100644
> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
> @@ -1635,9 +1635,9 @@ static void capture_reg_state(struct i915_gpu_state *error)
> error->gtier[0] = I915_READ(GTIER);
> error->ngtier = 1;
> } else if (IS_GEN(dev_priv, 2)) {
> - error->ier = I915_READ16(IER);
> + error->ier = I915_READ16(GEN2_IER);
> } else if (!IS_VALLEYVIEW(dev_priv)) {
> - error->ier = I915_READ(IER);
> + error->ier = I915_READ(GEN2_IER);
> }
> error->eir = I915_READ(EIR);
> error->pgtbl_er = I915_READ(PGTBL_ER);
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index b1f1db2bd879..2910b06913af 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -153,16 +153,16 @@ static void gen3_irq_reset(struct drm_i915_private *dev_priv, i915_reg_t imr,
>
> static void gen2_irq_reset(struct drm_i915_private *dev_priv)
> {
> - I915_WRITE16(IMR, 0xffff);
> - POSTING_READ16(IMR);
> + I915_WRITE16(GEN2_IMR, 0xffff);
> + POSTING_READ16(GEN2_IMR);
>
> - I915_WRITE16(IER, 0);
> + I915_WRITE16(GEN2_IER, 0);
>
> /* IIR can theoretically queue up two events. Be paranoid. */
> - I915_WRITE16(IIR, 0xffff);
> - POSTING_READ16(IIR);
> - I915_WRITE16(IIR, 0xffff);
> - POSTING_READ16(IIR);
> + I915_WRITE16(GEN2_IIR, 0xffff);
> + POSTING_READ16(GEN2_IIR);
> + I915_WRITE16(GEN2_IIR, 0xffff);
> + POSTING_READ16(GEN2_IIR);
> }
>
> #define GEN8_IRQ_RESET_NDX(type, which) \
> @@ -199,17 +199,17 @@ static void gen3_assert_iir_is_zero(struct drm_i915_private *dev_priv,
>
> static void gen2_assert_iir_is_zero(struct drm_i915_private *dev_priv)
> {
> - u16 val = I915_READ16(IIR);
> + u16 val = I915_READ16(GEN2_IIR);
>
> if (val == 0)
> return;
>
> WARN(1, "Interrupt register 0x%x is not zero: 0x%08x\n",
> - i915_mmio_reg_offset(IIR), val);
> - I915_WRITE16(IIR, 0xffff);
> - POSTING_READ16(IIR);
> - I915_WRITE16(IIR, 0xffff);
> - POSTING_READ16(IIR);
> + i915_mmio_reg_offset(GEN2_IIR), val);
> + I915_WRITE16(GEN2_IIR, 0xffff);
> + POSTING_READ16(GEN2_IIR);
> + I915_WRITE16(GEN2_IIR, 0xffff);
> + POSTING_READ16(GEN2_IIR);
> }
>
> static void gen3_irq_init(struct drm_i915_private *dev_priv,
> @@ -229,9 +229,9 @@ static void gen2_irq_init(struct drm_i915_private *dev_priv,
> {
> gen2_assert_iir_is_zero(dev_priv);
>
> - I915_WRITE16(IER, ier_val);
> - I915_WRITE16(IMR, imr_val);
> - POSTING_READ16(IMR);
> + I915_WRITE16(GEN2_IER, ier_val);
> + I915_WRITE16(GEN2_IMR, imr_val);
> + POSTING_READ16(GEN2_IMR);
> }
>
> #define GEN8_IRQ_INIT_NDX(type, which, imr_val, ier_val) \
> @@ -4344,7 +4344,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
> u16 eir = 0, eir_stuck = 0;
> u16 iir;
>
> - iir = I915_READ16(IIR);
> + iir = I915_READ16(GEN2_IIR);
> if (iir == 0)
> break;
>
> @@ -4357,7 +4357,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
> if (iir & I915_MASTER_ERROR_INTERRUPT)
> i8xx_error_irq_ack(dev_priv, &eir, &eir_stuck);
>
> - I915_WRITE16(IIR, iir);
> + I915_WRITE16(GEN2_IIR, iir);
>
> if (iir & I915_USER_INTERRUPT)
> intel_engine_breadcrumbs_irq(dev_priv->engine[RCS0]);
> @@ -4384,7 +4384,7 @@ static void i915_irq_reset(struct drm_device *dev)
>
> i9xx_pipestat_irq_reset(dev_priv);
>
> - GEN3_IRQ_RESET();
> + GEN3_IRQ_RESET(GEN2_);
These do look a bit odd with the gen3+gen2 in the same sentence.
Hence not entitely convinced that GEN2_ is the best prefix. But
meh.
Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> }
>
> static int i915_irq_postinstall(struct drm_device *dev)
> @@ -4416,7 +4416,7 @@ static int i915_irq_postinstall(struct drm_device *dev)
> dev_priv->irq_mask &= ~I915_DISPLAY_PORT_INTERRUPT;
> }
>
> - GEN3_IRQ_INIT(, dev_priv->irq_mask, enable_mask);
> + GEN3_IRQ_INIT(GEN2_, dev_priv->irq_mask, enable_mask);
>
> /* Interrupt setup is already guaranteed to be single-threaded, this is
> * just to make the assert_spin_locked check happy. */
> @@ -4448,7 +4448,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
> u32 hotplug_status = 0;
> u32 iir;
>
> - iir = I915_READ(IIR);
> + iir = I915_READ(GEN2_IIR);
> if (iir == 0)
> break;
>
> @@ -4465,7 +4465,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
> if (iir & I915_MASTER_ERROR_INTERRUPT)
> i9xx_error_irq_ack(dev_priv, &eir, &eir_stuck);
>
> - I915_WRITE(IIR, iir);
> + I915_WRITE(GEN2_IIR, iir);
>
> if (iir & I915_USER_INTERRUPT)
> intel_engine_breadcrumbs_irq(dev_priv->engine[RCS0]);
> @@ -4493,7 +4493,7 @@ static void i965_irq_reset(struct drm_device *dev)
>
> i9xx_pipestat_irq_reset(dev_priv);
>
> - GEN3_IRQ_RESET();
> + GEN3_IRQ_RESET(GEN2_);
> }
>
> static int i965_irq_postinstall(struct drm_device *dev)
> @@ -4536,7 +4536,7 @@ static int i965_irq_postinstall(struct drm_device *dev)
> if (IS_G4X(dev_priv))
> enable_mask |= I915_BSD_USER_INTERRUPT;
>
> - GEN3_IRQ_INIT(, dev_priv->irq_mask, enable_mask);
> + GEN3_IRQ_INIT(GEN2_, dev_priv->irq_mask, enable_mask);
>
> /* Interrupt setup is already guaranteed to be single-threaded, this is
> * just to make the assert_spin_locked check happy. */
> @@ -4594,7 +4594,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
> u32 hotplug_status = 0;
> u32 iir;
>
> - iir = I915_READ(IIR);
> + iir = I915_READ(GEN2_IIR);
> if (iir == 0)
> break;
>
> @@ -4610,7 +4610,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
> if (iir & I915_MASTER_ERROR_INTERRUPT)
> i9xx_error_irq_ack(dev_priv, &eir, &eir_stuck);
>
> - I915_WRITE(IIR, iir);
> + I915_WRITE(GEN2_IIR, iir);
>
> if (iir & I915_USER_INTERRUPT)
> intel_engine_breadcrumbs_irq(dev_priv->engine[RCS0]);
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 9c206e803ab3..6a150243cabb 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2713,10 +2713,10 @@ enum i915_power_well_id {
> #define VLV_GU_CTL0 _MMIO(VLV_DISPLAY_BASE + 0x2030)
> #define VLV_GU_CTL1 _MMIO(VLV_DISPLAY_BASE + 0x2034)
> #define SCPD0 _MMIO(0x209c) /* 915+ only */
> -#define IER _MMIO(0x20a0)
> -#define IIR _MMIO(0x20a4)
> -#define IMR _MMIO(0x20a8)
> -#define ISR _MMIO(0x20ac)
> +#define GEN2_IER _MMIO(0x20a0)
> +#define GEN2_IIR _MMIO(0x20a4)
> +#define GEN2_IMR _MMIO(0x20a8)
> +#define GEN2_ISR _MMIO(0x20ac)
> #define VLV_GUNIT_CLOCK_GATE _MMIO(VLV_DISPLAY_BASE + 0x2060)
> #define GINT_DIS (1 << 22)
> #define GCFG_DIS (1 << 8)
> diff --git a/drivers/gpu/drm/i915/i915_reset.c b/drivers/gpu/drm/i915/i915_reset.c
> index 68875ba43b8d..b75ac660c3c2 100644
> --- a/drivers/gpu/drm/i915/i915_reset.c
> +++ b/drivers/gpu/drm/i915/i915_reset.c
> @@ -1223,7 +1223,8 @@ void i915_clear_error_registers(struct drm_i915_private *i915)
> */
> DRM_DEBUG_DRIVER("EIR stuck: 0x%08x, masking\n", eir);
> rmw_set(uncore, EMR, eir);
> - intel_uncore_write(uncore, IIR, I915_MASTER_ERROR_INTERRUPT);
> + intel_uncore_write(uncore, GEN2_IIR,
> + I915_MASTER_ERROR_INTERRUPT);
> }
>
> if (INTEL_GEN(i915) >= 8) {
> diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c
> index a882b8d42bd9..eb317759b5d3 100644
> --- a/drivers/gpu/drm/i915/intel_overlay.c
> +++ b/drivers/gpu/drm/i915/intel_overlay.c
> @@ -446,7 +446,7 @@ static int intel_overlay_release_old_vid(struct intel_overlay *overlay)
> if (!overlay->old_vma)
> return 0;
>
> - if (I915_READ(ISR) & I915_OVERLAY_PLANE_FLIP_PENDING_INTERRUPT) {
> + if (I915_READ(GEN2_ISR) & I915_OVERLAY_PLANE_FLIP_PENDING_INTERRUPT) {
> /* synchronous slowpath */
> struct i915_request *rq;
>
> @@ -1430,7 +1430,7 @@ intel_overlay_capture_error_state(struct drm_i915_private *dev_priv)
> return NULL;
>
> error->dovsta = I915_READ(DOVSTA);
> - error->isr = I915_READ(ISR);
> + error->isr = I915_READ(GEN2_ISR);
> error->base = overlay->flip_addr;
>
> memcpy_fromio(&error->regs, overlay->regs, sizeof(error->regs));
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index af35f99c5940..029fd8ec1857 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -977,15 +977,15 @@ static void
> i9xx_irq_enable(struct intel_engine_cs *engine)
> {
> engine->i915->irq_mask &= ~engine->irq_enable_mask;
> - intel_uncore_write(engine->uncore, IMR, engine->i915->irq_mask);
> - intel_uncore_posting_read_fw(engine->uncore, IMR);
> + intel_uncore_write(engine->uncore, GEN2_IMR, engine->i915->irq_mask);
> + intel_uncore_posting_read_fw(engine->uncore, GEN2_IMR);
> }
>
> static void
> i9xx_irq_disable(struct intel_engine_cs *engine)
> {
> engine->i915->irq_mask |= engine->irq_enable_mask;
> - intel_uncore_write(engine->uncore, IMR, engine->i915->irq_mask);
> + intel_uncore_write(engine->uncore, GEN2_IMR, engine->i915->irq_mask);
> }
>
> static void
> @@ -994,7 +994,7 @@ i8xx_irq_enable(struct intel_engine_cs *engine)
> struct drm_i915_private *dev_priv = engine->i915;
>
> dev_priv->irq_mask &= ~engine->irq_enable_mask;
> - I915_WRITE16(IMR, dev_priv->irq_mask);
> + I915_WRITE16(GEN2_IMR, dev_priv->irq_mask);
> POSTING_READ16(RING_IMR(engine->mmio_base));
> }
>
> @@ -1004,7 +1004,7 @@ i8xx_irq_disable(struct intel_engine_cs *engine)
> struct drm_i915_private *dev_priv = engine->i915;
>
> dev_priv->irq_mask |= engine->irq_enable_mask;
> - I915_WRITE16(IMR, dev_priv->irq_mask);
> + I915_WRITE16(GEN2_IMR, dev_priv->irq_mask);
> }
>
> static int
> --
> 2.20.1
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list