[Intel-gfx] [RFC 22/30] drm/i915: don't run PCH code on non-PCH ports

Paulo Zanoni przanoni at gmail.com
Wed Aug 29 00:06:53 CEST 2012


From: Paulo Zanoni <paulo.r.zanoni at intel.com>

This should fix the FDI assertions we're getting on Haswell.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index c7ba7ad..4aa2c1d 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3289,10 +3289,13 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc)
 	int pipe = intel_crtc->pipe;
 	int plane = intel_crtc->plane;
 	u32 reg, temp;
+	bool is_pch_port;
 
 	if (!intel_crtc->active)
 		return;
 
+	is_pch_port = intel_crtc_driving_pch(crtc);
+
 	intel_crtc_wait_for_pending_flips(crtc);
 	drm_vblank_off(dev, pipe);
 	intel_crtc_update_cursor(crtc, false);
@@ -3310,14 +3313,17 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc)
 
 	ironlake_fdi_disable(crtc);
 
-	/* This is a horrible layering violation; we should be doing this in
-	 * the connector/encoder ->prepare instead, but we don't always have
-	 * enough information there about the config to know whether it will
-	 * actually be necessary or just cause undesired flicker.
-	 */
-	intel_disable_pch_ports(dev_priv, pipe);
+	if (is_pch_port) {
+		/* This is a horrible layering violation; we should be doing
+		 * this in the connector/encoder ->prepare instead, but we don't
+		 * always have enough information there about the config to know
+		 * whether it will actually be necessary or just cause undesired
+		 * flicker.
+		 */
+		intel_disable_pch_ports(dev_priv, pipe);
 
-	intel_disable_transcoder(dev_priv, pipe);
+		intel_disable_transcoder(dev_priv, pipe);
+	}
 
 	if (HAS_PCH_CPT(dev)) {
 		/* disable TRANS_DP_CTL */
-- 
1.7.11.2




More information about the Intel-gfx mailing list