diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 45da78e..d2d70a8 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -4461,12 +4461,26 @@ void intel_init_clock_gating(struct drm_device *dev) dspclk_gate |= DSSUNIT_CLOCK_GATE_DISABLE; I915_WRITE(DSPCLK_GATE_D, dspclk_gate); } else if (IS_I965GM(dev)) { + u32 dspclk_gate = OVFUNIT_CLOCK_GATE_DISABLE + | OVBUNIT_CLOCK_GATE_DISABLE + | OVRUNIT_CLOCK_GATE_DISABLE + | OVCUNIT_CLOCK_GATE_DISABLE + | OVUUNIT_CLOCK_GATE_DISABLE + | OVLUNIT_CLOCK_GATE_DISABLE; I915_WRITE(RENCLK_GATE_D1, I965_RCC_CLOCK_GATE_DISABLE); I915_WRITE(RENCLK_GATE_D2, 0); - I915_WRITE(DSPCLK_GATE_D, 0); + I915_WRITE(DSPCLK_GATE_D, dspclk_gate); I915_WRITE(RAMCLK_GATE_D, 0); I915_WRITE16(DEUC, 0); } else if (IS_I965G(dev)) { + u32 dspclk_gate = I915_READ(DSPCLK_GATE_D); + dspclk_gate |= OVFUNIT_CLOCK_GATE_DISABLE + | OVBUNIT_CLOCK_GATE_DISABLE + | OVRUNIT_CLOCK_GATE_DISABLE + | OVCUNIT_CLOCK_GATE_DISABLE + | OVUUNIT_CLOCK_GATE_DISABLE + | OVLUNIT_CLOCK_GATE_DISABLE; + I915_WRITE(DSPCLK_GATE_D, dspclk_gate); I915_WRITE(RENCLK_GATE_D1, I965_RCZ_CLOCK_GATE_DISABLE | I965_RCC_CLOCK_GATE_DISABLE | I965_RCPB_CLOCK_GATE_DISABLE |