@@ -1141,6 +1141,8 @@
*/
#define LVDS_PORT_EN (1 << 31)
/* Selects pipe B for LVDS data. Must be set on pre-965. */
+#define LVDS_PIPE_SELECT_MASK (1 << 30)
+#define LVDS_PIPEA_SELECT (0 << 30)
#define LVDS_PIPEB_SELECT (1 << 30)
/* LVDS dithering flag on 965/g4x platform */
#define LVDS_ENABLE_DITHER (1 << 25)
@@ -3303,8 +3303,11 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
lvds = I915_READ(lvds_reg);
lvds |= LVDS_PORT_EN | LVDS_A0A2_CLKA_POWER_UP;
+ lvds &= ~LVDS_PIPE_SELECT_MASK;
if (pipe == 1)
lvds |= LVDS_PIPEB_SELECT;
+ else
+ lvds |= LVDS_PIPEA_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