drm/i915: Fix cpt/ppt max pre-emphasis
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 12 May 2020 17:41:39 +0000 (20:41 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 3 Jun 2020 13:23:21 +0000 (16:23 +0300)
cpt/ppt support pre-emphasis level 3. Let's actually declare
support for it, instead of clamping things to level 2.

Also tweak the if-ladder in intel_dp_voltage_max() to match
intel_dp_pre_emphasis_max() to make it easier to compare them.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200512174145.3186-2-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
drivers/gpu/drm/i915/display/intel_dp.c

index 4749d2f..338f6d0 100644 (file)
@@ -4000,12 +4000,11 @@ intel_dp_voltage_max(struct intel_dp *intel_dp)
 
        if (HAS_DDI(dev_priv))
                return intel_ddi_dp_voltage_max(encoder);
-       else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
+       else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv) ||
+                (HAS_PCH_CPT(dev_priv) && port != PORT_A))
                return DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
        else if (IS_IVYBRIDGE(dev_priv) && port == PORT_A)
                return DP_TRAIN_VOLTAGE_SWING_LEVEL_2;
-       else if (HAS_PCH_CPT(dev_priv) && port != PORT_A)
-               return DP_TRAIN_VOLTAGE_SWING_LEVEL_3;
        else
                return DP_TRAIN_VOLTAGE_SWING_LEVEL_2;
 }
@@ -4019,7 +4018,8 @@ intel_dp_pre_emphasis_max(struct intel_dp *intel_dp, u8 voltage_swing)
 
        if (HAS_DDI(dev_priv)) {
                return intel_ddi_dp_pre_emphasis_max(encoder, voltage_swing);
-       } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
+       } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv) ||
+                  (HAS_PCH_CPT(dev_priv) && port != PORT_A)) {
                switch (voltage_swing & DP_TRAIN_VOLTAGE_SWING_MASK) {
                case DP_TRAIN_VOLTAGE_SWING_LEVEL_0:
                        return DP_TRAIN_PRE_EMPH_LEVEL_3;