drm/i915: Disable trickle feed via MI_ARB_STATE for the gen4
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 7 Jun 2013 07:47:02 +0000 (10:47 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 7 Jun 2013 08:37:52 +0000 (10:37 +0200)
According to BSpec, trickle feed should be disabled for BW and
mobile CL. Those constraints seem to match all of our gen4 chipsets.

Trickle feed is disabled via the MI_ARB_STATE register instead of
per plane controls on gen4.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_pm.c

index 47f3c48..2948764 100644 (file)
@@ -4944,6 +4944,8 @@ static void crestline_init_clock_gating(struct drm_device *dev)
        I915_WRITE(DSPCLK_GATE_D, 0);
        I915_WRITE(RAMCLK_GATE_D, 0);
        I915_WRITE16(DEUC, 0);
+       I915_WRITE(MI_ARB_STATE,
+                  _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
 }
 
 static void broadwater_init_clock_gating(struct drm_device *dev)
@@ -4956,6 +4958,8 @@ static void broadwater_init_clock_gating(struct drm_device *dev)
                   I965_ISC_CLOCK_GATE_DISABLE |
                   I965_FBC_CLOCK_GATE_DISABLE);
        I915_WRITE(RENCLK_GATE_D2, 0);
+       I915_WRITE(MI_ARB_STATE,
+                  _MASKED_BIT_ENABLE(MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE));
 }
 
 static void gen3_init_clock_gating(struct drm_device *dev)