Out of curiosity more than anything else, can you try
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index 27300d6b583b..eb2fa4b89219 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -5548,6 +5548,8 @@ static void gen3_init_clock_gating(struct drm_device *dev) if (IS_PINEVIEW(dev)) I915_WRITE(ECOSKPD, _MASKED_BIT_ENABLE(ECO_GATING_CX_ONLY));
+ I915_WRITE(DSPCLK_GATE_D, I915_READ(DSPCLK_GATE_D) | DPLUNIT_CLOCK_GATE_DISABLE); + /* IIR "flip pending" means done if this bit is set */ I915_WRITE(ECOSKPD, _MASKED_BIT_DISABLE(ECO_FLIP_DONE)); }
and see if that cures the random lines?
Out of curiosity more than anything else, can you try
diff --git a/drivers/ gpu/drm/ i915/intel_ pm.c b/drivers/ gpu/drm/ i915/intel_ pm.c .eb2fa4b89219 100644 gpu/drm/ i915/intel_ pm.c gpu/drm/ i915/intel_ pm.c clock_gating( struct drm_device *dev)
I915_ WRITE(ECOSKPD, _MASKED_ BIT_ENABLE( ECO_GATING_ CX_ONLY) );
index 27300d6b583b.
--- a/drivers/
+++ b/drivers/
@@ -5548,6 +5548,8 @@ static void gen3_init_
if (IS_PINEVIEW(dev))
+ I915_WRITE( DSPCLK_ GATE_D, I915_READ( DSPCLK_ GATE_D) | DPLUNIT_ CLOCK_GATE_ DISABLE) ;
I915_WRITE( ECOSKPD, _MASKED_ BIT_DISABLE( ECO_FLIP_ DONE));
+
/* IIR "flip pending" means done if this bit is set */
}
and see if that cures the random lines?