aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2017-10-19 09:37:13 -0400
committerVille Syrjälä <ville.syrjala@linux.intel.com>2017-10-27 11:44:29 -0400
commit3a6d84e677d4e5a6366437b7007e6a2f97aba9d1 (patch)
treec235a4676533a594045cbba6ce5a7fe588facdcc /drivers/gpu/drm/i915
parent5448f53ffe62c75e2cf84d407510efadaa1aff8e (diff)
drm/i915: Pass crtc state to intel_prepare_dp_ddi_buffers()
Eliminate intel_prepare_dp_ddi_buffers()'s reliance on the encoder->type by passing in the crtc state. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20171019133721.11794-3-ville.syrjala@linux.intel.com Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index c23d55c3344c..059582495496 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -811,7 +811,8 @@ static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port por
811 * values in advance. This function programs the correct values for 811 * values in advance. This function programs the correct values for
812 * DP/eDP/FDI use cases. 812 * DP/eDP/FDI use cases.
813 */ 813 */
814static void intel_prepare_dp_ddi_buffers(struct intel_encoder *encoder) 814static void intel_prepare_dp_ddi_buffers(struct intel_encoder *encoder,
815 const struct intel_crtc_state *crtc_state)
815{ 816{
816 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 817 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
817 u32 iboost_bit = 0; 818 u32 iboost_bit = 0;
@@ -819,23 +820,15 @@ static void intel_prepare_dp_ddi_buffers(struct intel_encoder *encoder)
819 enum port port = intel_ddi_get_encoder_port(encoder); 820 enum port port = intel_ddi_get_encoder_port(encoder);
820 const struct ddi_buf_trans *ddi_translations; 821 const struct ddi_buf_trans *ddi_translations;
821 822
822 switch (encoder->type) { 823 if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_ANALOG))
823 case INTEL_OUTPUT_EDP: 824 ddi_translations = intel_ddi_get_buf_trans_fdi(dev_priv,
825 &n_entries);
826 else if (intel_crtc_has_type(crtc_state, INTEL_OUTPUT_EDP))
824 ddi_translations = intel_ddi_get_buf_trans_edp(dev_priv, port, 827 ddi_translations = intel_ddi_get_buf_trans_edp(dev_priv, port,
825 &n_entries); 828 &n_entries);
826 break; 829 else
827 case INTEL_OUTPUT_DP:
828 ddi_translations = intel_ddi_get_buf_trans_dp(dev_priv, port, 830 ddi_translations = intel_ddi_get_buf_trans_dp(dev_priv, port,
829 &n_entries); 831 &n_entries);
830 break;
831 case INTEL_OUTPUT_ANALOG:
832 ddi_translations = intel_ddi_get_buf_trans_fdi(dev_priv,
833 &n_entries);
834 break;
835 default:
836 MISSING_CASE(encoder->type);
837 return;
838 }
839 832
840 /* If we're boosting the current, set bit 31 of trans1 */ 833 /* If we're boosting the current, set bit 31 of trans1 */
841 if (IS_GEN9_BC(dev_priv) && 834 if (IS_GEN9_BC(dev_priv) &&
@@ -937,7 +930,7 @@ void hsw_fdi_link_train(struct intel_crtc *crtc,
937 930
938 for_each_encoder_on_crtc(dev, &crtc->base, encoder) { 931 for_each_encoder_on_crtc(dev, &crtc->base, encoder) {
939 WARN_ON(encoder->type != INTEL_OUTPUT_ANALOG); 932 WARN_ON(encoder->type != INTEL_OUTPUT_ANALOG);
940 intel_prepare_dp_ddi_buffers(encoder); 933 intel_prepare_dp_ddi_buffers(encoder, crtc_state);
941 } 934 }
942 935
943 /* Set the FDI_RX_MISC pwrdn lanes and the 2 workarounds listed at the 936 /* Set the FDI_RX_MISC pwrdn lanes and the 2 workarounds listed at the
@@ -2201,7 +2194,7 @@ static void intel_ddi_pre_enable_dp(struct intel_encoder *encoder,
2201 else if (IS_GEN9_LP(dev_priv)) 2194 else if (IS_GEN9_LP(dev_priv))
2202 bxt_ddi_vswing_sequence(encoder, level, encoder->type); 2195 bxt_ddi_vswing_sequence(encoder, level, encoder->type);
2203 else 2196 else
2204 intel_prepare_dp_ddi_buffers(encoder); 2197 intel_prepare_dp_ddi_buffers(encoder, crtc_state);
2205 2198
2206 intel_ddi_init_dp_buf_reg(encoder); 2199 intel_ddi_init_dp_buf_reg(encoder);
2207 if (!is_mst) 2200 if (!is_mst)