diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-10-07 19:01:16 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-10-08 05:28:22 -0400 |
commit | 7f8232826842b27525857615262f50fe66c84dd7 (patch) | |
tree | d7f548cc99a1e7b167d84fc508444e6898f37a34 | |
parent | 5b2adf897146edeac6a1e438fb67b5a53dbbdf34 (diff) |
drm/i915: fix PCH eDP SSC support
Enable SSC on PCH eDP if possible.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
[ickle: added a posting read of PCH_DREF_CONTROL before the udelay]
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 5812fc7c5a0f..d7d59006a846 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -3796,13 +3796,25 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, | |||
3796 | 3796 | ||
3797 | POSTING_READ(PCH_DREF_CONTROL); | 3797 | POSTING_READ(PCH_DREF_CONTROL); |
3798 | udelay(200); | 3798 | udelay(200); |
3799 | } | ||
3800 | temp &= ~DREF_CPU_SOURCE_OUTPUT_MASK; | ||
3799 | 3801 | ||
3800 | temp &= ~DREF_CPU_SOURCE_OUTPUT_MASK; | 3802 | /* Enable CPU source on CPU attached eDP */ |
3801 | temp |= DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD; | 3803 | if (!intel_encoder_is_pch_edp(&has_edp_encoder->base)) { |
3804 | if (dev_priv->lvds_use_ssc) | ||
3805 | temp |= DREF_CPU_SOURCE_OUTPUT_DOWNSPREAD; | ||
3806 | else | ||
3807 | temp |= DREF_CPU_SOURCE_OUTPUT_NONSPREAD; | ||
3802 | } else { | 3808 | } else { |
3803 | temp |= DREF_CPU_SOURCE_OUTPUT_NONSPREAD; | 3809 | /* Enable SSC on PCH eDP if needed */ |
3810 | if (dev_priv->lvds_use_ssc) { | ||
3811 | DRM_ERROR("enabling SSC on PCH\n"); | ||
3812 | temp |= DREF_SUPERSPREAD_SOURCE_ENABLE; | ||
3813 | } | ||
3804 | } | 3814 | } |
3805 | I915_WRITE(PCH_DREF_CONTROL, temp); | 3815 | I915_WRITE(PCH_DREF_CONTROL, temp); |
3816 | POSTING_READ(PCH_DREF_CONTROL); | ||
3817 | udelay(200); | ||
3806 | } | 3818 | } |
3807 | } | 3819 | } |
3808 | 3820 | ||