summaryrefslogtreecommitdiff
path: root/shared-core/i915_irq.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@jbarnes-t61.(none)>2008-06-11 10:25:45 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2008-06-11 10:25:45 -0700
commitf5412a944fa4666e25f4fa27b6ed85c21ccb65a0 (patch)
tree968afc250072af4525757c71bc9f3e18618bcc01 /shared-core/i915_irq.c
parenta1d96007241a78dd2b4a718df8e0568fe7994c22 (diff)
parent62a3be962f1915d17813ecbfc9544232908b44e4 (diff)
Merge commit 'origin/drm-gem' into modesetting-gem
Use new GEM based ring buffer initialization. Still need to init GEM & use it for framebuffer allocation etc. Conflicts: shared-core/i915_dma.c shared-core/i915_drv.h
Diffstat (limited to 'shared-core/i915_irq.c')
-rw-r--r--shared-core/i915_irq.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c
index d36a3691..bd11d37a 100644
--- a/shared-core/i915_irq.c
+++ b/shared-core/i915_irq.c
@@ -670,7 +670,7 @@ void i915_user_irq_off(struct drm_device *dev)
struct drm_i915_private *dev_priv = (struct drm_i915_private *) dev->dev_private;
DRM_SPINLOCK(&dev_priv->user_irq_lock);
- BUG_ON(dev_priv->user_irq_refcount <= 0);
+ BUG_ON(dev_priv->irq_enabled && dev_priv->user_irq_refcount <= 0);
if (dev_priv->irq_enabled && (--dev_priv->user_irq_refcount == 0)) {
dev_priv->irq_mask_reg |= I915_USER_INTERRUPT;
if (IS_I9XX(dev) && !IS_I915G(dev) && !IS_I915GM(dev))
@@ -689,6 +689,11 @@ int i915_wait_irq(struct drm_device * dev, int irq_nr)
struct drm_i915_master_private *master_priv;
int ret = 0;
+ if (!dev_priv) {
+ DRM_ERROR("called with no initialization\n");
+ return -EINVAL;
+ }
+
DRM_DEBUG("irq_nr=%d breadcrumb=%d\n", irq_nr,
READ_BREADCRUMB(dev_priv));