OSDN Git Service

drm/i915: Add missing POSTING_READ()s to BXT dbuf enable sequence
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 6 May 2015 11:28:57 +0000 (14:28 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 8 May 2015 11:03:43 +0000 (13:03 +0200)
Do a POSTING_READ() between the DBUF_CTL register write and the
udelay() to make sure we really wait after the register write has
happened.

Spotted while reviewing Damien's SKL cdclk patch which had the
POSTING_READ()s.

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 8e21e23..5c2047b 100644 (file)
@@ -5482,6 +5482,8 @@ void broxton_init_cdclk(struct drm_device *dev)
        broxton_set_cdclk(dev, 624000);
 
        I915_WRITE(DBUF_CTL, I915_READ(DBUF_CTL) | DBUF_POWER_REQUEST);
+       POSTING_READ(DBUF_CTL);
+
        udelay(10);
 
        if (!(I915_READ(DBUF_CTL) & DBUF_POWER_STATE))
@@ -5493,6 +5495,8 @@ void broxton_uninit_cdclk(struct drm_device *dev)
        struct drm_i915_private *dev_priv = dev->dev_private;
 
        I915_WRITE(DBUF_CTL, I915_READ(DBUF_CTL) & ~DBUF_POWER_REQUEST);
+       POSTING_READ(DBUF_CTL);
+
        udelay(10);
 
        if (I915_READ(DBUF_CTL) & DBUF_POWER_STATE)