diff options
author | Egbert Eich <eich@suse.de> | 2012-10-14 10:33:11 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-10-16 03:33:38 -0400 |
commit | 6478d414fe4ee3114e760fb6d6df0f8e2f66186a (patch) | |
tree | 28cb1bce4f4b7538e68b289a88867f01bf7ddfe8 | |
parent | be3cd5e37716bcf1579f63bdd919345a1f9692b9 (diff) |
DRM/i915: Don't delete DPLL Multiplier during DAC init.
The DPLL multipiler is set up in intel_display.c:i9xx_update_pll()
called from i9xx_crtc_mode_set().
There the DPLL multiplier is adjusted so that the SDVO gets a sufficient
bus clock.
When cloning a CRTC between an SDVO driven encoder and the standard
DAC the DAC setup code reseted the multiplier value to 1 thus undoing
the correct setup. There is no need to touch the multiplier in the DAC
setup code: the correct value (i.e. 1 in case no SDVO encoder is used)
is set by i9xx_update_pll() already.
A comment at the code suggested that this code is a left over from the
days when there was no setup for clone modes.
Signed-off-by: Egbert Eich <eich@suse.de>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r-- | drivers/gpu/drm/i915/intel_crt.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index c42b9809f86d..ae3a3d545ef2 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
@@ -220,20 +220,7 @@ static void intel_crt_mode_set(struct drm_encoder *encoder, | |||
220 | intel_encoder_to_crt(to_intel_encoder(encoder)); | 220 | intel_encoder_to_crt(to_intel_encoder(encoder)); |
221 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); | 221 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); |
222 | struct drm_i915_private *dev_priv = dev->dev_private; | 222 | struct drm_i915_private *dev_priv = dev->dev_private; |
223 | int dpll_md_reg; | 223 | u32 adpa; |
224 | u32 adpa, dpll_md; | ||
225 | |||
226 | dpll_md_reg = DPLL_MD(intel_crtc->pipe); | ||
227 | |||
228 | /* | ||
229 | * Disable separate mode multiplier used when cloning SDVO to CRT | ||
230 | * XXX this needs to be adjusted when we really are cloning | ||
231 | */ | ||
232 | if (INTEL_INFO(dev)->gen >= 4 && !HAS_PCH_SPLIT(dev)) { | ||
233 | dpll_md = I915_READ(dpll_md_reg); | ||
234 | I915_WRITE(dpll_md_reg, | ||
235 | dpll_md & ~DPLL_MD_UDI_MULTIPLIER_MASK); | ||
236 | } | ||
237 | 224 | ||
238 | adpa = ADPA_HOTPLUG_BITS; | 225 | adpa = ADPA_HOTPLUG_BITS; |
239 | if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC) | 226 | if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC) |