<div dir="ltr">Reviewed-by: Rodrigo Vivi <<a href="mailto:rodrigo.vivi@gmail.com">rodrigo.vivi@gmail.com</a>><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 15, 2014 at 11:41 AM,  <span dir="ltr"><<a href="mailto:ville.syrjala@linux.intel.com" target="_blank">ville.syrjala@linux.intel.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Ville Syrjälä <<a href="mailto:ville.syrjala@linux.intel.com">ville.syrjala@linux.intel.com</a>><br>
<br>
Now that the vblank wait is gone from intel_enable_primary_plane(),<br>
hsw_enable_ips() needs to do the vblank wait itself.<br>
<br>
Signed-off-by: Ville Syrjälä <<a href="mailto:ville.syrjala@linux.intel.com">ville.syrjala@linux.intel.com</a>><br>
---<br>
 drivers/gpu/drm/i915/intel_display.c | 12 ++++++------<br>
 drivers/gpu/drm/i915/intel_sprite.c  |  5 +----<br>
 2 files changed, 7 insertions(+), 10 deletions(-)<br>
<br>
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c<br>
index 32c6c16..33d21bf 100644<br>
--- a/drivers/gpu/drm/i915/intel_display.c<br>
+++ b/drivers/gpu/drm/i915/intel_display.c<br>
@@ -3543,17 +3543,17 @@ static void intel_disable_planes(struct drm_crtc *crtc)<br>
<br>
 void hsw_enable_ips(struct intel_crtc *crtc)<br>
 {<br>
-       struct drm_i915_private *dev_priv = crtc->base.dev->dev_private;<br>
+       struct drm_device *dev = crtc->base.dev;<br>
+       struct drm_i915_private *dev_priv = dev->dev_private;<br>
<br>
        if (!crtc->config.ips_enabled)<br>
                return;<br>
<br>
-       /* We can only enable IPS after we enable a plane and wait for a vblank.<br>
-        * We guarantee that the plane is enabled by calling intel_enable_ips<br>
-        * only after intel_enable_plane. And intel_enable_plane already waits<br>
-        * for a vblank, so all we need to do here is to enable the IPS bit. */<br>
+       /* We can only enable IPS after we enable a plane and wait for a vblank */<br>
+       intel_wait_for_vblank(dev, crtc->pipe);<br>
+<br>
        assert_plane_enabled(dev_priv, crtc->plane);<br>
-       if (IS_BROADWELL(crtc->base.dev)) {<br>
+       if (IS_BROADWELL(dev)) {<br>
                mutex_lock(&dev_priv->rps.hw_lock);<br>
                WARN_ON(sandybridge_pcode_write(dev_priv, DISPLAY_IPS_CONTROL, 0xc0000000));<br>
                mutex_unlock(&dev_priv->rps.hw_lock);<br>
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c<br>
index 336ae6c..4df7245 100644<br>
--- a/drivers/gpu/drm/i915/intel_sprite.c<br>
+++ b/drivers/gpu/drm/i915/intel_sprite.c<br>
@@ -540,10 +540,7 @@ intel_enable_primary(struct drm_crtc *crtc)<br>
         * when going from primary only to sprite only and vice<br>
         * versa.<br>
         */<br>
-       if (intel_crtc->config.ips_enabled) {<br>
-               intel_wait_for_vblank(dev, intel_crtc->pipe);<br>
-               hsw_enable_ips(intel_crtc);<br>
-       }<br>
+       hsw_enable_ips(intel_crtc);<br>
<br>
        mutex_lock(&dev->struct_mutex);<br>
        intel_update_fbc(dev);<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.8.3.2<br>
<br>
_______________________________________________<br>
Intel-gfx mailing list<br>
<a href="mailto:Intel-gfx@lists.freedesktop.org">Intel-gfx@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/intel-gfx" target="_blank">http://lists.freedesktop.org/mailman/listinfo/intel-gfx</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Rodrigo Vivi</div><div>Blog: <a href="http://blog.vivi.eng.br" target="_blank">http://blog.vivi.eng.br</a></div><div> </div>
</div>