diff options
author | Nian Wu <nian.wu@intel.com> | 2007-01-25 13:30:46 -0800 |
---|---|---|
committer | Nian Wu <nian.wu@intel.com> | 2007-01-25 13:30:46 -0800 |
commit | 3886b7e62925a6eb7ca05e3ab23f3d4781439d06 (patch) | |
tree | 529c661c969dbaf23f2dcd75c940a892a3f37d0e /shared-core/i915_irq.c | |
parent | 9f5cda44dbf5b8f3c7cc00b8a58eee2690a864e6 (diff) | |
parent | 90ae39d2f07058dd128d2fb19ffad712ee75c9a0 (diff) |
Merge branch 'master' into crestline
Diffstat (limited to 'shared-core/i915_irq.c')
-rw-r--r-- | shared-core/i915_irq.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c index 97723653..5ff87880 100644 --- a/shared-core/i915_irq.c +++ b/shared-core/i915_irq.c @@ -214,9 +214,12 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) drm_device_t *dev = (drm_device_t *) arg; drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; u16 temp; + u32 pipea_stats, pipeb_stats; + pipea_stats = I915_READ(I915REG_PIPEASTAT); + pipeb_stats = I915_READ(I915REG_PIPEBSTAT); + temp = I915_READ16(I915REG_INT_IDENTITY_R); - temp &= (dev_priv->irq_enable_reg | USER_INT_FLAG); #if 0 @@ -257,6 +260,12 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) if (dev_priv->swaps_pending > 0) drm_locked_tasklet(dev, i915_vblank_tasklet); + I915_WRITE(I915REG_PIPEASTAT, + pipea_stats|I915_VBLANK_INTERRUPT_ENABLE| + I915_VBLANK_CLEAR); + I915_WRITE(I915REG_PIPEBSTAT, + pipeb_stats|I915_VBLANK_INTERRUPT_ENABLE| + I915_VBLANK_CLEAR); } return IRQ_HANDLED; |