aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-12-08 10:30:00 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-12-08 10:30:00 -0500
commit15a17aae5f803551981a7acc6a4058b247a7452c (patch)
tree05e11e66a229b6561f3619881eb33e08af4a62ba /drivers/gpu
parent8f0e2b9d95a88ca5d8349deef2375644faf184ae (diff)
drm/i915: Check mask/bit helper functions
After a bit of irc discussion we've concluded that it would be prudent to check that callers use the mask/enable paramters correctly. So add a WARN_ON. Spurred by Damien's bugfix which added _MASKED_FIELD. v2: We use WARN_ON(1) a lot to catch default cases in switch blocks which should always be extended. So this doesn't work really. Dunno why gcc only started complaining when I've moved the WARN out of the static inline helper to address a feedback from Jani. Cc: Damien Lespiau <damien.lespiau@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Jani Nikula <jani.nikula@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 08a5a4ba52ac..e6a1db36928e 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -183,6 +183,8 @@ static void ilk_update_gt_irq(struct drm_i915_private *dev_priv,
183{ 183{
184 assert_spin_locked(&dev_priv->irq_lock); 184 assert_spin_locked(&dev_priv->irq_lock);
185 185
186 WARN_ON(enabled_irq_mask & ~interrupt_mask);
187
186 if (WARN_ON(!intel_irqs_enabled(dev_priv))) 188 if (WARN_ON(!intel_irqs_enabled(dev_priv)))
187 return; 189 return;
188 190
@@ -229,6 +231,8 @@ static void snb_update_pm_irq(struct drm_i915_private *dev_priv,
229{ 231{
230 uint32_t new_val; 232 uint32_t new_val;
231 233
234 WARN_ON(enabled_irq_mask & ~interrupt_mask);
235
232 assert_spin_locked(&dev_priv->irq_lock); 236 assert_spin_locked(&dev_priv->irq_lock);
233 237
234 new_val = dev_priv->pm_irq_mask; 238 new_val = dev_priv->pm_irq_mask;
@@ -328,6 +332,8 @@ void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,
328 sdeimr &= ~interrupt_mask; 332 sdeimr &= ~interrupt_mask;
329 sdeimr |= (~enabled_irq_mask & interrupt_mask); 333 sdeimr |= (~enabled_irq_mask & interrupt_mask);
330 334
335 WARN_ON(enabled_irq_mask & ~interrupt_mask);
336
331 assert_spin_locked(&dev_priv->irq_lock); 337 assert_spin_locked(&dev_priv->irq_lock);
332 338
333 if (WARN_ON(!intel_irqs_enabled(dev_priv))) 339 if (WARN_ON(!intel_irqs_enabled(dev_priv)))