summaryrefslogtreecommitdiff
path: root/shared-core/i915_irq.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2006-02-18 04:13:36 +0000
committerDave Airlie <airlied@linux.ie>2006-02-18 04:13:36 +0000
commiteb5666b089ac0defe9a8ae3d218c9d4a098f683b (patch)
tree35522738ac4d1070c76f62004ff7a156027f13be /shared-core/i915_irq.c
parent7c18b2565ed3fc1952356967a1e057d86df6484a (diff)
clear i915 interrupts sources on server exit
Diffstat (limited to 'shared-core/i915_irq.c')
-rw-r--r--shared-core/i915_irq.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/shared-core/i915_irq.c b/shared-core/i915_irq.c
index 91e9573e..3e269419 100644
--- a/shared-core/i915_irq.c
+++ b/shared-core/i915_irq.c
@@ -204,10 +204,14 @@ void i915_driver_irq_postinstall(drm_device_t * dev)
void i915_driver_irq_uninstall(drm_device_t * dev)
{
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
+ u16 temp;
if (!dev_priv)
return;
I915_WRITE16(I915REG_HWSTAM, 0xffff);
I915_WRITE16(I915REG_INT_MASK_R, 0xffff);
I915_WRITE16(I915REG_INT_ENABLE_R, 0x0);
+
+ temp = I915_READ16(I915REG_INT_IDENTITY_R);
+ I915_WRITE(I915REG_INT_IDENTITY_R, temp);
}