diff options
Diffstat (limited to 'linux-core/i915_opregion.c')
-rw-r--r-- | linux-core/i915_opregion.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/linux-core/i915_opregion.c b/linux-core/i915_opregion.c index fdd4987e..d015db28 100644 --- a/linux-core/i915_opregion.c +++ b/linux-core/i915_opregion.c @@ -248,6 +248,7 @@ void opregion_enable_asle(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; struct opregion_asle *asle = dev_priv->opregion.asle; + u32 mask = 0; if (asle) { u32 pipeb_stats = I915_READ(PIPEBSTAT); @@ -257,12 +258,13 @@ void opregion_enable_asle(struct drm_device *dev) to generate an IRQ on writes */ I915_WRITE(PIPEBSTAT, pipeb_stats |= I915_LEGACY_BLC_EVENT_ENABLE); - dev_priv->irq_enable_reg |= - (I915_ASLE_INTERRUPT - | I915_DISPLAY_PIPE_B_EVENT_INTERRUPT); + mask = I915_ASLE_INTERRUPT | + I915_DISPLAY_PIPE_B_EVENT_INTERRUPT; } else - dev_priv->irq_enable_reg |= I915_ASLE_INTERRUPT; + mask = I915_ASLE_INTERRUPT; + dev_priv->irq_mask_reg &= ~mask; + asle->tche = ASLE_ALS_EN | ASLE_BLC_EN | ASLE_PFIT_EN | ASLE_PFMB_EN; asle->ardy = 1; |