aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2015-09-18 13:03:41 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-10-13 07:19:32 -0400
commitb51a284278c634c675fa22e26e9e9b97dec4518a (patch)
tree77cabac41d64e1d5087d2db62fe5555da875f876
parent395b2913e36ffb6a09057ea0b069113960dd3a06 (diff)
drm/i915: Turn GEN5_ASSERT_IIR_IS_ZERO() into a function
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c31
1 files changed, 17 insertions, 14 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 637c13211613..e6b406e4565b 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -139,27 +139,30 @@ static const u32 hpd_bxt[HPD_NUM_PINS] = {
139/* 139/*
140 * We should clear IMR at preinstall/uninstall, and just check at postinstall. 140 * We should clear IMR at preinstall/uninstall, and just check at postinstall.
141 */ 141 */
142#define GEN5_ASSERT_IIR_IS_ZERO(reg) do { \ 142static void gen5_assert_iir_is_zero(struct drm_i915_private *dev_priv, u32 reg)
143 u32 val = I915_READ(reg); \ 143{
144 if (val) { \ 144 u32 val = I915_READ(reg);
145 WARN(1, "Interrupt register 0x%x is not zero: 0x%08x\n", \ 145
146 (reg), val); \ 146 if (val == 0)
147 I915_WRITE((reg), 0xffffffff); \ 147 return;
148 POSTING_READ(reg); \ 148
149 I915_WRITE((reg), 0xffffffff); \ 149 WARN(1, "Interrupt register 0x%x is not zero: 0x%08x\n",
150 POSTING_READ(reg); \ 150 reg, val);
151 } \ 151 I915_WRITE(reg, 0xffffffff);
152} while (0) 152 POSTING_READ(reg);
153 I915_WRITE(reg, 0xffffffff);
154 POSTING_READ(reg);
155}
153 156
154#define GEN8_IRQ_INIT_NDX(type, which, imr_val, ier_val) do { \ 157#define GEN8_IRQ_INIT_NDX(type, which, imr_val, ier_val) do { \
155 GEN5_ASSERT_IIR_IS_ZERO(GEN8_##type##_IIR(which)); \ 158 gen5_assert_iir_is_zero(dev_priv, GEN8_##type##_IIR(which)); \
156 I915_WRITE(GEN8_##type##_IER(which), (ier_val)); \ 159 I915_WRITE(GEN8_##type##_IER(which), (ier_val)); \
157 I915_WRITE(GEN8_##type##_IMR(which), (imr_val)); \ 160 I915_WRITE(GEN8_##type##_IMR(which), (imr_val)); \
158 POSTING_READ(GEN8_##type##_IMR(which)); \ 161 POSTING_READ(GEN8_##type##_IMR(which)); \
159} while (0) 162} while (0)
160 163
161#define GEN5_IRQ_INIT(type, imr_val, ier_val) do { \ 164#define GEN5_IRQ_INIT(type, imr_val, ier_val) do { \
162 GEN5_ASSERT_IIR_IS_ZERO(type##IIR); \ 165 gen5_assert_iir_is_zero(dev_priv, type##IIR); \
163 I915_WRITE(type##IER, (ier_val)); \ 166 I915_WRITE(type##IER, (ier_val)); \
164 I915_WRITE(type##IMR, (imr_val)); \ 167 I915_WRITE(type##IMR, (imr_val)); \
165 POSTING_READ(type##IMR); \ 168 POSTING_READ(type##IMR); \
@@ -3365,7 +3368,7 @@ static void ibx_irq_postinstall(struct drm_device *dev)
3365 else 3368 else
3366 mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT; 3369 mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT;
3367 3370
3368 GEN5_ASSERT_IIR_IS_ZERO(SDEIIR); 3371 gen5_assert_iir_is_zero(dev_priv, SDEIIR);
3369 I915_WRITE(SDEIMR, ~mask); 3372 I915_WRITE(SDEIMR, ~mask);
3370} 3373}
3371 3374