drm/i915: Set AGPBUSY# bit in init_clock_gating
I don't see why we wouldn't want interrupts to wake up the CPU from C3 always, so just set the AGPBUSY# bit in gen3_init_clock_gating(). Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Родитель
4dfbd12c33
Коммит
12fabbcb9f
|
@ -2628,10 +2628,6 @@ static int i915_enable_vblank(struct drm_device *dev, int pipe)
|
||||||
else
|
else
|
||||||
i915_enable_pipestat(dev_priv, pipe,
|
i915_enable_pipestat(dev_priv, pipe,
|
||||||
PIPE_VBLANK_INTERRUPT_STATUS);
|
PIPE_VBLANK_INTERRUPT_STATUS);
|
||||||
|
|
||||||
/* maintain vblank delivery even in deep C-states */
|
|
||||||
if (INTEL_INFO(dev)->gen == 3)
|
|
||||||
I915_WRITE(INSTPM, _MASKED_BIT_DISABLE(INSTPM_AGPBUSY_DIS));
|
|
||||||
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
|
spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2695,9 +2691,6 @@ static void i915_disable_vblank(struct drm_device *dev, int pipe)
|
||||||
unsigned long irqflags;
|
unsigned long irqflags;
|
||||||
|
|
||||||
spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
|
spin_lock_irqsave(&dev_priv->irq_lock, irqflags);
|
||||||
if (INTEL_INFO(dev)->gen == 3)
|
|
||||||
I915_WRITE(INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_DIS));
|
|
||||||
|
|
||||||
i915_disable_pipestat(dev_priv, pipe,
|
i915_disable_pipestat(dev_priv, pipe,
|
||||||
PIPE_VBLANK_INTERRUPT_STATUS |
|
PIPE_VBLANK_INTERRUPT_STATUS |
|
||||||
PIPE_START_VBLANK_INTERRUPT_STATUS);
|
PIPE_START_VBLANK_INTERRUPT_STATUS);
|
||||||
|
|
|
@ -5504,6 +5504,9 @@ static void gen3_init_clock_gating(struct drm_device *dev)
|
||||||
|
|
||||||
/* IIR "flip pending" means done if this bit is set */
|
/* IIR "flip pending" means done if this bit is set */
|
||||||
I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
|
I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE));
|
||||||
|
|
||||||
|
/* interrupts should cause a wake up from C3 */
|
||||||
|
I915_WRITE(INSTPM, _MASKED_BIT_DISABLE(INSTPM_AGPBUSY_DIS));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void i85x_init_clock_gating(struct drm_device *dev)
|
static void i85x_init_clock_gating(struct drm_device *dev)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче