More of an example of where to use the stepping macro than anything
else.  I think these early steppings never went outside of Intel.

Signed-off-by: Jesse Barnes <jbar...@virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_display.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index bdb4624..828bac5 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2883,6 +2883,13 @@ static void ironlake_fdi_link_train(struct drm_crtc 
*crtc)
 
 }
 
+static const int snb_a_fdi_train_param[] = {
+       FDI_LINK_TRAIN_400MV_0DB_SNB_A,
+       FDI_LINK_TRAIN_400MV_6DB_SNB_A,
+       FDI_LINK_TRAIN_600MV_3_5DB_SNB_A,
+       FDI_LINK_TRAIN_800MV_0DB_SNB_A,
+};
+
 static const int snb_b_fdi_train_param[] = {
        FDI_LINK_TRAIN_400MV_0DB_SNB_B,
        FDI_LINK_TRAIN_400MV_6DB_SNB_B,
@@ -2898,6 +2905,12 @@ static void gen6_fdi_link_train(struct drm_crtc *crtc)
        struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
        int pipe = intel_crtc->pipe;
        u32 reg, temp, i, retry;
+       const int *train_param;
+
+       if (INTEL_STEPPING(dev) == 0)
+               train_param = snb_a_fdi_train_param;
+       else
+               train_param = snb_b_fdi_train_param;
 
        /* Train 1: umask FDI RX Interrupt symbol_lock and bit_lock bit
           for train result */
@@ -2943,7 +2956,7 @@ static void gen6_fdi_link_train(struct drm_crtc *crtc)
                reg = FDI_TX_CTL(pipe);
                temp = I915_READ(reg);
                temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK;
-               temp |= snb_b_fdi_train_param[i];
+               temp |= train_param[i];
                I915_WRITE(reg, temp);
 
                POSTING_READ(reg);
@@ -2996,7 +3009,7 @@ static void gen6_fdi_link_train(struct drm_crtc *crtc)
                reg = FDI_TX_CTL(pipe);
                temp = I915_READ(reg);
                temp &= ~FDI_LINK_TRAIN_VOL_EMP_MASK;
-               temp |= snb_b_fdi_train_param[i];
+               temp |= train_param[i];
                I915_WRITE(reg, temp);
 
                POSTING_READ(reg);
-- 
1.8.4.2

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to