aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2011-10-12 12:01:58 -0400
committerKeith Packard <keithp@keithp.com>2011-10-20 18:26:43 -0400
commit75770564c90c45618003267f4cdde4bbc090f1bd (patch)
tree85c58fd598a7772976b7371b28f18769c0f4fb09
parentd9d444cbc536050ef66e4cefcd55224c46cbbadf (diff)
drm/i915: use transcoder select bits on VGA and HDMI on CPT
Required for 3 pipe functionality. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Tested-By: Eugeni Dodonov <eugeni.dodonov@intel.com> Reviewed-By: Eugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c18
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c10
2 files changed, 11 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 451534cb44de..fee0ad02c6d0 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -152,17 +152,13 @@ static void intel_crt_mode_set(struct drm_encoder *encoder,
152 if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC) 152 if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
153 adpa |= ADPA_VSYNC_ACTIVE_HIGH; 153 adpa |= ADPA_VSYNC_ACTIVE_HIGH;
154 154
155 if (intel_crtc->pipe == 0) { 155 /* For CPT allow 3 pipe config, for others just use A or B */
156 if (HAS_PCH_CPT(dev)) 156 if (HAS_PCH_CPT(dev))
157 adpa |= PORT_TRANS_A_SEL_CPT; 157 adpa |= PORT_TRANS_SEL_CPT(intel_crtc->pipe);
158 else 158 else if (intel_crtc->pipe == 0)
159 adpa |= ADPA_PIPE_A_SELECT; 159 adpa |= ADPA_PIPE_A_SELECT;
160 } else { 160 else
161 if (HAS_PCH_CPT(dev)) 161 adpa |= ADPA_PIPE_B_SELECT;
162 adpa |= PORT_TRANS_B_SEL_CPT;
163 else
164 adpa |= ADPA_PIPE_B_SELECT;
165 }
166 162
167 if (!HAS_PCH_SPLIT(dev)) 163 if (!HAS_PCH_SPLIT(dev))
168 I915_WRITE(BCLRPAT(intel_crtc->pipe), 0); 164 I915_WRITE(BCLRPAT(intel_crtc->pipe), 0);
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 185c5aa1bb25..e7e716cb1c99 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -252,12 +252,10 @@ static void intel_hdmi_mode_set(struct drm_encoder *encoder,
252 intel_write_eld(encoder, adjusted_mode); 252 intel_write_eld(encoder, adjusted_mode);
253 } 253 }
254 254
255 if (intel_crtc->pipe == 1) { 255 if (HAS_PCH_CPT(dev))
256 if (HAS_PCH_CPT(dev)) 256 sdvox |= PORT_TRANS_SEL_CPT(intel_crtc->pipe);
257 sdvox |= PORT_TRANS_B_SEL_CPT; 257 else if (intel_crtc->pipe == 1)
258 else 258 sdvox |= SDVO_PIPE_B_SELECT;
259 sdvox |= SDVO_PIPE_B_SELECT;
260 }
261 259
262 I915_WRITE(intel_hdmi->sdvox_reg, sdvox); 260 I915_WRITE(intel_hdmi->sdvox_reg, sdvox);
263 POSTING_READ(intel_hdmi->sdvox_reg); 261 POSTING_READ(intel_hdmi->sdvox_reg);