drm/i915: Clear the Ironlake dithering flags when the pipe doesn't want it.
My fine DisplayPort output was getting ST dithering forever after having had the LVDS enabled at one point. Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
d1d6ca73ef
commit
7b824ec2e5
@ -3888,6 +3888,11 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
|
||||
udelay(150);
|
||||
}
|
||||
|
||||
if (HAS_PCH_SPLIT(dev)) {
|
||||
pipeconf &= ~PIPE_ENABLE_DITHER;
|
||||
pipeconf &= ~PIPE_DITHER_TYPE_MASK;
|
||||
}
|
||||
|
||||
/* The LVDS pin pair needs to be on before the DPLLs are enabled.
|
||||
* This is an exception to the general rule that mode_set doesn't turn
|
||||
* things on.
|
||||
@ -3930,18 +3935,15 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
|
||||
if (dev_priv->lvds_dither) {
|
||||
if (HAS_PCH_SPLIT(dev)) {
|
||||
pipeconf |= PIPE_ENABLE_DITHER;
|
||||
pipeconf &= ~PIPE_DITHER_TYPE_MASK;
|
||||
pipeconf |= PIPE_DITHER_TYPE_ST01;
|
||||
} else
|
||||
lvds |= LVDS_ENABLE_DITHER;
|
||||
} else {
|
||||
if (HAS_PCH_SPLIT(dev)) {
|
||||
pipeconf &= ~PIPE_ENABLE_DITHER;
|
||||
pipeconf &= ~PIPE_DITHER_TYPE_MASK;
|
||||
} else
|
||||
if (!HAS_PCH_SPLIT(dev)) {
|
||||
lvds &= ~LVDS_ENABLE_DITHER;
|
||||
}
|
||||
}
|
||||
}
|
||||
I915_WRITE(lvds_reg, lvds);
|
||||
I915_READ(lvds_reg);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user