Browse Source

drm/i915: enable LVDS on Cougarpoint

Fix the transcoder select bit for LVDS on CPT.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Zhenyu Wang 15 years ago
parent
commit
b3b095b3b2
1 changed files with 11 additions and 4 deletions
  1. 11 4
      drivers/gpu/drm/i915/intel_display.c

+ 11 - 4
drivers/gpu/drm/i915/intel_display.c

@@ -3492,10 +3492,17 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
 
 		lvds = I915_READ(lvds_reg);
 		lvds |= LVDS_PORT_EN | LVDS_A0A2_CLKA_POWER_UP;
-		if (pipe == 1)
-			lvds |= LVDS_PIPEB_SELECT;
-		else
-			lvds &= ~LVDS_PIPEB_SELECT;
+		if (pipe == 1) {
+			if (HAS_PCH_CPT(dev))
+				lvds |= PORT_TRANS_B_SEL_CPT;
+			else
+				lvds |= LVDS_PIPEB_SELECT;
+		} else {
+			if (HAS_PCH_CPT(dev))
+				lvds &= ~PORT_TRANS_SEL_MASK;
+			else
+				lvds &= ~LVDS_PIPEB_SELECT;
+		}
 		/* set the corresponsding LVDS_BORDER bit */
 		lvds |= dev_priv->lvds_border_bits;
 		/* Set the B0-B3 data pairs corresponding to whether we're going to