[Intel-gfx] [PATCH 2/2] drm/i915: set dither bits on eDP panels too
Jesse Barnes
jbarnes at virtuousgeek.org
Tue Sep 7 23:48:06 CEST 2010
We really need a macro to test whether a given connector has a panel attached rather than sprinkling HAS_PCH_SPLIT/IS_eDP/has_edp_encoder etc all over.
Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
---
drivers/gpu/drm/i915/intel_display.c | 25 +++++++++++++------------
1 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index c23e7e3..f0a9f00 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3954,23 +3954,24 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
* appropriately here, but we need to look more thoroughly into how
* panels behave in the two modes.
*/
- /* set the dithering flag */
+ /* set the dithering flag on non-PCH LVDS as needed */
if (IS_I965G(dev)) {
- if (dev_priv->lvds_dither) {
- if (HAS_PCH_SPLIT(dev)) {
- pipeconf |= PIPECONF_DITHER_EN;
- pipeconf |= PIPECONF_DITHER_TYPE_ST1;
- } else
- lvds |= LVDS_ENABLE_DITHER;
- } else {
- if (!HAS_PCH_SPLIT(dev)) {
- lvds &= ~LVDS_ENABLE_DITHER;
- }
- }
+ if (dev_priv->lvds_dither && !HAS_PCH_SPLIT(dev))
+ lvds |= LVDS_ENABLE_DITHER;
+ else if (!HAS_PCH_SPLIT(dev))
+ lvds &= ~LVDS_ENABLE_DITHER;
}
I915_WRITE(lvds_reg, lvds);
I915_READ(lvds_reg);
}
+
+ /* set the dithering flag if needed */
+ if (IS_I965G(dev) && HAS_PCH_SPLIT(dev) && dev_priv->lvds_dither &&
+ (is_lvds || has_edp_encoder)) {
+ pipeconf |= PIPECONF_DITHER_EN;
+ pipeconf |= PIPECONF_DITHER_TYPE_ST1;
+ }
+
if (is_dp)
intel_dp_set_m_n(crtc, mode, adjusted_mode);
else if (HAS_PCH_SPLIT(dev)) {
--
1.6.3.3
More information about the Intel-gfx
mailing list