diff options
author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2016-07-12 08:59:31 -0400 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2016-08-02 08:09:20 -0400 |
commit | 9f3324377b02cc8ba8d05c89d6d4369e932b7d34 (patch) | |
tree | ea2353e8830816b3cafa70b95f9e524ad1810614 /drivers/gpu/drm | |
parent | 8d8bb85eb7d859aa9bbe36e588690a1d22af7608 (diff) |
drm/i915: Move bxt_ddi_vswing_sequence() call into intel_ddi_pre_enable() for HDMI
Now that the SKL iboost programming is done from intel_ddi_pre_enable()
for HDMI, let's move the BXT bxt_ddi_vswing_sequence() call there as
well. This makes things look more similar to the DP/eDP case which
is handled in ddi_signal_levels().
Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1468328376-6380-5-git-send-email-ville.syrjala@linux.intel.com
Reviewed-by: Imre Deak <imre.deak@intel.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/i915/intel_ddi.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index 09fe580dfd49..52589bbea8da 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c | |||
@@ -301,9 +301,6 @@ static const struct bxt_ddi_buf_trans bxt_ddi_translations_hdmi[] = { | |||
301 | { 154, 0x9A, 1, 128, true }, /* 9: 1200 0 */ | 301 | { 154, 0x9A, 1, 128, true }, /* 9: 1200 0 */ |
302 | }; | 302 | }; |
303 | 303 | ||
304 | static void bxt_ddi_vswing_sequence(struct drm_i915_private *dev_priv, | ||
305 | u32 level, enum port port, int type); | ||
306 | |||
307 | static void ddi_get_encoder_port(struct intel_encoder *intel_encoder, | 304 | static void ddi_get_encoder_port(struct intel_encoder *intel_encoder, |
308 | struct intel_digital_port **dig_port, | 305 | struct intel_digital_port **dig_port, |
309 | enum port *port) | 306 | enum port *port) |
@@ -446,15 +443,8 @@ void intel_prepare_ddi_buffer(struct intel_encoder *encoder) | |||
446 | port = intel_ddi_get_encoder_port(encoder); | 443 | port = intel_ddi_get_encoder_port(encoder); |
447 | hdmi_level = intel_ddi_hdmi_level(dev_priv, port); | 444 | hdmi_level = intel_ddi_hdmi_level(dev_priv, port); |
448 | 445 | ||
449 | if (IS_BROXTON(dev_priv)) { | 446 | if (IS_BROXTON(dev_priv)) |
450 | if (encoder->type != INTEL_OUTPUT_HDMI) | ||
451 | return; | ||
452 | |||
453 | /* Vswing programming for HDMI */ | ||
454 | bxt_ddi_vswing_sequence(dev_priv, hdmi_level, port, | ||
455 | INTEL_OUTPUT_HDMI); | ||
456 | return; | 447 | return; |
457 | } | ||
458 | 448 | ||
459 | if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) { | 449 | if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) { |
460 | ddi_translations_fdi = NULL; | 450 | ddi_translations_fdi = NULL; |
@@ -1676,6 +1666,9 @@ static void intel_ddi_pre_enable(struct intel_encoder *intel_encoder) | |||
1676 | 1666 | ||
1677 | if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) | 1667 | if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) |
1678 | skl_ddi_set_iboost(intel_encoder, level); | 1668 | skl_ddi_set_iboost(intel_encoder, level); |
1669 | else if (IS_BROXTON(dev_priv)) | ||
1670 | bxt_ddi_vswing_sequence(dev_priv, level, port, | ||
1671 | INTEL_OUTPUT_HDMI); | ||
1679 | 1672 | ||
1680 | intel_hdmi->set_infoframes(encoder, | 1673 | intel_hdmi->set_infoframes(encoder, |
1681 | crtc->config->has_hdmi_sink, | 1674 | crtc->config->has_hdmi_sink, |