aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2010-10-07 19:01:15 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2010-10-08 05:28:21 -0400
commit5b2adf897146edeac6a1e438fb67b5a53dbbdf34 (patch)
tree1bc198b1d20401a49cda217ff0981e957285fe1c /drivers/gpu/drm/i915/intel_display.c
parent9f0e7ff4b366d27570cbe0ffa137ed1018009114 (diff)
drm/i915: add Ironlake clock gating workaround for FDI link training
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 349710a8014..5812fc7c5a0 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1714,6 +1714,9 @@ static void ironlake_fdi_link_train(struct drm_crtc *crtc)
1714 POSTING_READ(reg); 1714 POSTING_READ(reg);
1715 udelay(150); 1715 udelay(150);
1716 1716
1717 /* Ironlake workaround, enable clock pointer after FDI enable*/
1718 I915_WRITE(FDI_RX_CHICKEN(pipe), FDI_RX_PHASE_SYNC_POINTER_ENABLE);
1719
1717 reg = FDI_RX_IIR(pipe); 1720 reg = FDI_RX_IIR(pipe);
1718 for (tries = 0; tries < 5; tries++) { 1721 for (tries = 0; tries < 5; tries++) {
1719 temp = I915_READ(reg); 1722 temp = I915_READ(reg);
@@ -2192,6 +2195,11 @@ static void ironlake_crtc_disable(struct drm_crtc *crtc)
2192 POSTING_READ(reg); 2195 POSTING_READ(reg);
2193 udelay(100); 2196 udelay(100);
2194 2197
2198 /* Ironlake workaround, disable clock pointer after downing FDI */
2199 I915_WRITE(FDI_RX_CHICKEN(pipe),
2200 I915_READ(FDI_RX_CHICKEN(pipe) &
2201 ~FDI_RX_PHASE_SYNC_POINTER_ENABLE));
2202
2195 /* still set train pattern 1 */ 2203 /* still set train pattern 1 */
2196 reg = FDI_TX_CTL(pipe); 2204 reg = FDI_TX_CTL(pipe);
2197 temp = I915_READ(reg); 2205 temp = I915_READ(reg);