mirror of https://gitee.com/openkylin/linux.git
drm/i915/cnl: Fix DP max voltage
On clock recovery this function is called to find out the max voltage swing level that we could go. However gen 9 functions use the old buffer translation tables to figure that out. That table is not valid for CNL causing an invalid number of entries and an invalid selection on the max voltage swing level. v2: Let's use same approach that previous platforms. v3: Actually use n_entries and avoid duplicated -1. v4: Avoid cnl_max_level and use current style. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Clint Taylor <clinton.a.taylor@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20170831145356.15932-1-rodrigo.vivi@intel.com
This commit is contained in:
parent
bf50355645
commit
5fcf34b1c5
|
@ -1879,10 +1879,17 @@ u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder)
|
|||
struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
|
||||
int n_entries;
|
||||
|
||||
if (encoder->type == INTEL_OUTPUT_EDP)
|
||||
intel_ddi_get_buf_trans_edp(dev_priv, &n_entries);
|
||||
else
|
||||
intel_ddi_get_buf_trans_dp(dev_priv, &n_entries);
|
||||
if (IS_CANNONLAKE(dev_priv)) {
|
||||
if (encoder->type == INTEL_OUTPUT_EDP)
|
||||
cnl_get_buf_trans_edp(dev_priv, &n_entries);
|
||||
else
|
||||
cnl_get_buf_trans_dp(dev_priv, &n_entries);
|
||||
} else {
|
||||
if (encoder->type == INTEL_OUTPUT_EDP)
|
||||
intel_ddi_get_buf_trans_edp(dev_priv, &n_entries);
|
||||
else
|
||||
intel_ddi_get_buf_trans_dp(dev_priv, &n_entries);
|
||||
}
|
||||
|
||||
if (WARN_ON(n_entries < 1))
|
||||
n_entries = 1;
|
||||
|
|
Loading…
Reference in New Issue