summaryrefslogtreecommitdiffstats
path: root/drivers/char/drm/i915_irq.c
diff options
context:
space:
mode:
authorDave Airlie2006-02-18 05:17:04 +0100
committerDave Airlie2006-02-18 05:17:04 +0100
commit91e3738ebc6d858e784090382e02afeae5a93b08 (patch)
tree985021be6624126bcbebd8e038a324668703736b /drivers/char/drm/i915_irq.c
parentLinux v2.6.16-rc4 (diff)
downloadkernel-qcow2-linux-91e3738ebc6d858e784090382e02afeae5a93b08.tar.gz
kernel-qcow2-linux-91e3738ebc6d858e784090382e02afeae5a93b08.tar.xz
kernel-qcow2-linux-91e3738ebc6d858e784090382e02afeae5a93b08.zip
drm: fixup i915 interrupt on X server exit
Fixes: IRQ disabled (i915?) when switchig between gnome themes (gnome-theme-manager) Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/char/drm/i915_irq.c')
-rw-r--r--drivers/char/drm/i915_irq.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/char/drm/i915_irq.c b/drivers/char/drm/i915_irq.c
index a1381c61aa63..d3879ac9970f 100644
--- a/drivers/char/drm/i915_irq.c
+++ b/drivers/char/drm/i915_irq.c
@@ -202,10 +202,15 @@ 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_WRITE16(I915REG_INT_IDENTITY_R, temp);
}