diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dsi.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dsi.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c index 83f15848098a..f09474b0c4d3 100644 --- a/drivers/gpu/drm/i915/intel_dsi.c +++ b/drivers/gpu/drm/i915/intel_dsi.c | |||
@@ -662,11 +662,11 @@ static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder) | |||
662 | } | 662 | } |
663 | } | 663 | } |
664 | 664 | ||
665 | static void intel_dsi_port_enable(struct intel_encoder *encoder) | 665 | static void intel_dsi_port_enable(struct intel_encoder *encoder, |
666 | const struct intel_crtc_state *crtc_state) | ||
666 | { | 667 | { |
667 | struct drm_device *dev = encoder->base.dev; | 668 | struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); |
668 | struct drm_i915_private *dev_priv = to_i915(dev); | 669 | struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc); |
669 | struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); | ||
670 | struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); | 670 | struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); |
671 | enum port port; | 671 | enum port port; |
672 | 672 | ||
@@ -705,7 +705,7 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder) | |||
705 | if (IS_BROXTON(dev_priv)) | 705 | if (IS_BROXTON(dev_priv)) |
706 | temp |= LANE_CONFIGURATION_DUAL_LINK_A; | 706 | temp |= LANE_CONFIGURATION_DUAL_LINK_A; |
707 | else | 707 | else |
708 | temp |= intel_crtc->pipe ? | 708 | temp |= crtc->pipe ? |
709 | LANE_CONFIGURATION_DUAL_LINK_B : | 709 | LANE_CONFIGURATION_DUAL_LINK_B : |
710 | LANE_CONFIGURATION_DUAL_LINK_A; | 710 | LANE_CONFIGURATION_DUAL_LINK_A; |
711 | } | 711 | } |
@@ -875,7 +875,7 @@ static void intel_dsi_pre_enable(struct intel_encoder *encoder, | |||
875 | 875 | ||
876 | intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON); | 876 | intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON); |
877 | 877 | ||
878 | intel_dsi_port_enable(encoder); | 878 | intel_dsi_port_enable(encoder, pipe_config); |
879 | } | 879 | } |
880 | 880 | ||
881 | intel_panel_enable_backlight(pipe_config, conn_state); | 881 | intel_panel_enable_backlight(pipe_config, conn_state); |
@@ -1082,7 +1082,7 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder, | |||
1082 | struct drm_display_mode *adjusted_mode = | 1082 | struct drm_display_mode *adjusted_mode = |
1083 | &pipe_config->base.adjusted_mode; | 1083 | &pipe_config->base.adjusted_mode; |
1084 | struct drm_display_mode *adjusted_mode_sw; | 1084 | struct drm_display_mode *adjusted_mode_sw; |
1085 | struct intel_crtc *intel_crtc; | 1085 | struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc); |
1086 | struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); | 1086 | struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base); |
1087 | unsigned int lane_count = intel_dsi->lane_count; | 1087 | unsigned int lane_count = intel_dsi->lane_count; |
1088 | unsigned int bpp, fmt; | 1088 | unsigned int bpp, fmt; |
@@ -1093,8 +1093,7 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder, | |||
1093 | crtc_hblank_start_sw, crtc_hblank_end_sw; | 1093 | crtc_hblank_start_sw, crtc_hblank_end_sw; |
1094 | 1094 | ||
1095 | /* FIXME: hw readout should not depend on SW state */ | 1095 | /* FIXME: hw readout should not depend on SW state */ |
1096 | intel_crtc = to_intel_crtc(encoder->base.crtc); | 1096 | adjusted_mode_sw = &crtc->config->base.adjusted_mode; |
1097 | adjusted_mode_sw = &intel_crtc->config->base.adjusted_mode; | ||
1098 | 1097 | ||
1099 | /* | 1098 | /* |
1100 | * Atleast one port is active as encoder->get_config called only if | 1099 | * Atleast one port is active as encoder->get_config called only if |
@@ -1243,6 +1242,8 @@ static void intel_dsi_get_config(struct intel_encoder *encoder, | |||
1243 | u32 pclk; | 1242 | u32 pclk; |
1244 | DRM_DEBUG_KMS("\n"); | 1243 | DRM_DEBUG_KMS("\n"); |
1245 | 1244 | ||
1245 | pipe_config->output_types |= BIT(INTEL_OUTPUT_DSI); | ||
1246 | |||
1246 | if (IS_GEN9_LP(dev_priv)) | 1247 | if (IS_GEN9_LP(dev_priv)) |
1247 | bxt_dsi_get_pipe_config(encoder, pipe_config); | 1248 | bxt_dsi_get_pipe_config(encoder, pipe_config); |
1248 | 1249 | ||