|
@@ -4822,6 +4822,9 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc)
|
|
|
if (WARN_ON(intel_crtc->active))
|
|
|
return;
|
|
|
|
|
|
+ if (intel_crtc->config->has_pch_encoder)
|
|
|
+ intel_set_pch_fifo_underrun_reporting(dev_priv, pipe, false);
|
|
|
+
|
|
|
if (intel_crtc->config->has_pch_encoder)
|
|
|
intel_prepare_shared_dpll(intel_crtc);
|
|
|
|
|
@@ -4904,6 +4907,10 @@ static void haswell_crtc_enable(struct drm_crtc *crtc)
|
|
|
if (WARN_ON(intel_crtc->active))
|
|
|
return;
|
|
|
|
|
|
+ if (intel_crtc->config->has_pch_encoder)
|
|
|
+ intel_set_pch_fifo_underrun_reporting(dev_priv, TRANSCODER_A,
|
|
|
+ false);
|
|
|
+
|
|
|
if (intel_crtc_to_shared_dpll(intel_crtc))
|
|
|
intel_enable_shared_dpll(intel_crtc);
|
|
|
|
|
@@ -5051,6 +5058,8 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc)
|
|
|
|
|
|
ironlake_fdi_pll_disable(intel_crtc);
|
|
|
}
|
|
|
+
|
|
|
+ intel_set_pch_fifo_underrun_reporting(dev_priv, pipe, true);
|
|
|
}
|
|
|
|
|
|
static void haswell_crtc_disable(struct drm_crtc *crtc)
|
|
@@ -5098,6 +5107,10 @@ static void haswell_crtc_disable(struct drm_crtc *crtc)
|
|
|
for_each_encoder_on_crtc(dev, crtc, encoder)
|
|
|
if (encoder->post_disable)
|
|
|
encoder->post_disable(encoder);
|
|
|
+
|
|
|
+ if (intel_crtc->config->has_pch_encoder)
|
|
|
+ intel_set_pch_fifo_underrun_reporting(dev_priv, TRANSCODER_A,
|
|
|
+ true);
|
|
|
}
|
|
|
|
|
|
static void i9xx_pfit_enable(struct intel_crtc *crtc)
|