aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2018-09-26 06:47:18 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2018-09-26 08:33:14 -0400
commit7a90938332d80faf973fbcffdf6e674e7b8f0914 (patch)
treeac9511bf1f57450480287171711173d2e5bebc15 /drivers/gpu/drm/i915
parent74f6e183913b5dc90a004cafa84159ddb61cd0f0 (diff)
drm/i915: Avoid compiler warning for maybe unused gu_misc_iir
/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@linux-m68k.org> Fixes: df0d28c185ad ("drm/i915/icl: GSE interrupt moves from DE_MISC to GU_MISC") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180926104718.17462-1-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c33
1 files 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,
3088 spin_unlock(&i915->irq_lock); 3088 spin_unlock(&i915->irq_lock);
3089} 3089}
3090 3090
3091static void 3091static u32
3092gen11_gu_misc_irq_ack(struct drm_i915_private *dev_priv, const u32 master_ctl, 3092gen11_gu_misc_irq_ack(struct drm_i915_private *dev_priv, const u32 master_ctl)
3093 u32 *iir)
3094{ 3093{
3095 void __iomem * const regs = dev_priv->regs; 3094 void __iomem * const regs = dev_priv->regs;
3095 u32 iir;
3096 3096
3097 if (!(master_ctl & GEN11_GU_MISC_IRQ)) 3097 if (!(master_ctl & GEN11_GU_MISC_IRQ))
3098 return; 3098 return 0;
3099
3100 iir = raw_reg_read(regs, GEN11_GU_MISC_IIR);
3101 if (likely(iir))
3102 raw_reg_write(regs, GEN11_GU_MISC_IIR, iir);
3099 3103
3100 *iir = raw_reg_read(regs, GEN11_GU_MISC_IIR); 3104 return iir;
3101 if (likely(*iir))
3102 raw_reg_write(regs, GEN11_GU_MISC_IIR, *iir);
3103} 3105}
3104 3106
3105static void 3107static void
3106gen11_gu_misc_irq_handler(struct drm_i915_private *dev_priv, 3108gen11_gu_misc_irq_handler(struct drm_i915_private *dev_priv, const u32 iir)
3107 const u32 master_ctl, const u32 iir)
3108{ 3109{
3109 if (!(master_ctl & GEN11_GU_MISC_IRQ))
3110 return;
3111
3112 if (unlikely(!iir)) {
3113 DRM_ERROR("GU_MISC iir blank!\n");
3114 return;
3115 }
3116
3117 if (iir & GEN11_GU_MISC_GSE) 3110 if (iir & GEN11_GU_MISC_GSE)
3118 intel_opregion_asle_intr(dev_priv); 3111 intel_opregion_asle_intr(dev_priv);
3119 else
3120 DRM_ERROR("Unexpected GU_MISC interrupt 0x%x\n", iir);
3121} 3112}
3122 3113
3123static irqreturn_t gen11_irq_handler(int irq, void *arg) 3114static irqreturn_t gen11_irq_handler(int irq, void *arg)
@@ -3154,12 +3145,12 @@ static irqreturn_t gen11_irq_handler(int irq, void *arg)
3154 enable_rpm_wakeref_asserts(i915); 3145 enable_rpm_wakeref_asserts(i915);
3155 } 3146 }
3156 3147
3157 gen11_gu_misc_irq_ack(i915, master_ctl, &gu_misc_iir); 3148 gu_misc_iir = gen11_gu_misc_irq_ack(i915, master_ctl);
3158 3149
3159 /* Acknowledge and enable interrupts. */ 3150 /* Acknowledge and enable interrupts. */
3160 raw_reg_write(regs, GEN11_GFX_MSTR_IRQ, GEN11_MASTER_IRQ | master_ctl); 3151 raw_reg_write(regs, GEN11_GFX_MSTR_IRQ, GEN11_MASTER_IRQ | master_ctl);
3161 3152
3162 gen11_gu_misc_irq_handler(i915, master_ctl, gu_misc_iir); 3153 gen11_gu_misc_irq_handler(i915, gu_misc_iir);
3163 3154
3164 return IRQ_HANDLED; 3155 return IRQ_HANDLED;
3165} 3156}