drm/i915: Disable/enable planes as the first/last thing during modeset on gmch platforms
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / i915 / intel_display.c
index 5b586e9cb8de2ac7bb2daf98bb9db63904ef432e..8823e7aa7c029399318e6a8df9347757d5d41492 100644 (file)
@@ -4539,10 +4539,10 @@ static void valleyview_crtc_enable(struct drm_crtc *crtc)
        intel_wait_for_vblank(dev_priv->dev, pipe);
        intel_set_cpu_fifo_underrun_reporting(dev, pipe, true);
 
-       intel_crtc_enable_planes(crtc);
-
        for_each_encoder_on_crtc(dev, crtc, encoder)
                encoder->enable(encoder);
+
+       intel_crtc_enable_planes(crtc);
 }
 
 static void i9xx_crtc_enable(struct drm_crtc *crtc)
@@ -4575,10 +4575,10 @@ static void i9xx_crtc_enable(struct drm_crtc *crtc)
        intel_wait_for_vblank(dev_priv->dev, pipe);
        intel_set_cpu_fifo_underrun_reporting(dev, pipe, true);
 
-       intel_crtc_enable_planes(crtc);
-
        for_each_encoder_on_crtc(dev, crtc, encoder)
                encoder->enable(encoder);
+
+       intel_crtc_enable_planes(crtc);
 }
 
 static void i9xx_pfit_disable(struct intel_crtc *crtc)
@@ -4607,11 +4607,11 @@ static void i9xx_crtc_disable(struct drm_crtc *crtc)
        if (!intel_crtc->active)
                return;
 
+       intel_crtc_disable_planes(crtc);
+
        for_each_encoder_on_crtc(dev, crtc, encoder)
                encoder->disable(encoder);
 
-       intel_crtc_disable_planes(crtc);
-
        intel_set_cpu_fifo_underrun_reporting(dev, pipe, false);
        intel_disable_pipe(dev_priv, pipe);