{
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);
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;