diff options
author | Dave Airlie <airlied@linux.ie> | 2006-02-18 15:17:04 +1100 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2006-02-18 15:17:04 +1100 |
commit | 91e3738ebc6d858e784090382e02afeae5a93b08 (patch) | |
tree | 985021be6624126bcbebd8e038a324668703736b /drivers/char/drm/i915_irq.c | |
parent | bd71c2b17468a2531fb4c81ec1d73520845e97e1 (diff) |
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.c | 5 |
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); } |