[Intel-gfx] [PATCH] drm/i915: Avoid compiler warning for maybe unused gu_misc_iir
Mika Kuoppala
mika.kuoppala at linux.intel.com
Wed Sep 26 11:06:41 UTC 2018
Chris Wilson <chris at chris-wilson.co.uk> writes:
> /kisskb/src/drivers/gpu/drm/i915/i915_irq.c: warning: 'gu_misc_iir' may be used uninitialized in this function [-Wuninitialized]: => 3120:10
>
> Silence the compiler warning by ensuring that the local variable is
> initialised and removing the guard that is confusing the older gcc.
>
> Reported-by: Geert Uytterhoeven <geert at linux-m68k.org>
> Fixes: df0d28c185ad ("drm/i915/icl: GSE interrupt moves from DE_MISC to GU_MISC")
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> Cc: Paulo Zanoni <paulo.r.zanoni at intel.com>
> ---
> drivers/gpu/drm/i915/i915_irq.c | 33 ++++++++++++---------------------
> 1 file changed, 12 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 10f28a2ee2e6..2e242270e270 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -3088,36 +3088,27 @@ gen11_gt_irq_handler(struct drm_i915_private * const i915,
> spin_unlock(&i915->irq_lock);
> }
>
> -static void
> -gen11_gu_misc_irq_ack(struct drm_i915_private *dev_priv, const u32 master_ctl,
> - u32 *iir)
> +static u32
> +gen11_gu_misc_irq_ack(struct drm_i915_private *dev_priv, const u32 master_ctl)
> {
> void __iomem * const regs = dev_priv->regs;
> + u32 iir;
>
> if (!(master_ctl & GEN11_GU_MISC_IRQ))
> - return;
> + return 0;
> +
> + iir = raw_reg_read(regs, GEN11_GU_MISC_IIR);
> + if (likely(iir))
> + raw_reg_write(regs, GEN11_GU_MISC_IIR, iir);
>
> - *iir = raw_reg_read(regs, GEN11_GU_MISC_IIR);
> - if (likely(*iir))
> - raw_reg_write(regs, GEN11_GU_MISC_IIR, *iir);
> + return iir;
> }
>
> static void
> -gen11_gu_misc_irq_handler(struct drm_i915_private *dev_priv,
> - const u32 master_ctl, const u32 iir)
> +gen11_gu_misc_irq_handler(struct drm_i915_private *dev_priv, const u32 iir)
> {
> - if (!(master_ctl & GEN11_GU_MISC_IRQ))
> - return;
> -
> - if (unlikely(!iir)) {
> - DRM_ERROR("GU_MISC iir blank!\n");
> - return;
> - }
> -
> if (iir & GEN11_GU_MISC_GSE)
> intel_opregion_asle_intr(dev_priv);
> - else
> - DRM_ERROR("Unexpected GU_MISC interrupt 0x%x\n", iir);
I see you are not fan of asserting irq behaviour in this
level.
You could have sprinked some 'static inline' there aswell but I
won't start to argue that I know better than compiler.
Reviewed-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> }
>
> static irqreturn_t gen11_irq_handler(int irq, void *arg)
> @@ -3154,12 +3145,12 @@ static irqreturn_t gen11_irq_handler(int irq, void *arg)
> enable_rpm_wakeref_asserts(i915);
> }
>
> - gen11_gu_misc_irq_ack(i915, master_ctl, &gu_misc_iir);
> + gu_misc_iir = gen11_gu_misc_irq_ack(i915, master_ctl);
>
> /* Acknowledge and enable interrupts. */
> raw_reg_write(regs, GEN11_GFX_MSTR_IRQ, GEN11_MASTER_IRQ | master_ctl);
>
> - gen11_gu_misc_irq_handler(i915, master_ctl, gu_misc_iir);
> + gen11_gu_misc_irq_handler(i915, gu_misc_iir);
>
> return IRQ_HANDLED;
> }
> --
> 2.19.0
More information about the Intel-gfx
mailing list