diff options
-rw-r--r-- | drivers/gpu/drm/i915/intel_ddi.c | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 14 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp_mst.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 3 |
4 files changed, 19 insertions, 9 deletions
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c index ce369c2e96a0..d825b6880bb1 100644 --- a/drivers/gpu/drm/i915/intel_ddi.c +++ b/drivers/gpu/drm/i915/intel_ddi.c | |||
@@ -1639,7 +1639,10 @@ static void intel_ddi_pre_enable(struct intel_encoder *intel_encoder, | |||
1639 | 1639 | ||
1640 | intel_prepare_dp_ddi_buffers(intel_encoder); | 1640 | intel_prepare_dp_ddi_buffers(intel_encoder); |
1641 | 1641 | ||
1642 | intel_dp_set_link_params(intel_dp, crtc->config); | 1642 | intel_dp_set_link_params(intel_dp, crtc->config->port_clock, |
1643 | crtc->config->lane_count, | ||
1644 | intel_crtc_has_type(crtc->config, | ||
1645 | INTEL_OUTPUT_DP_MST)); | ||
1643 | 1646 | ||
1644 | intel_ddi_init_dp_buf_reg(intel_encoder); | 1647 | intel_ddi_init_dp_buf_reg(intel_encoder); |
1645 | 1648 | ||
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 4b14565afb3d..75ac62fa6bf5 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -1641,11 +1641,12 @@ found: | |||
1641 | } | 1641 | } |
1642 | 1642 | ||
1643 | void intel_dp_set_link_params(struct intel_dp *intel_dp, | 1643 | void intel_dp_set_link_params(struct intel_dp *intel_dp, |
1644 | const struct intel_crtc_state *pipe_config) | 1644 | int link_rate, uint8_t lane_count, |
1645 | bool link_mst) | ||
1645 | { | 1646 | { |
1646 | intel_dp->link_rate = pipe_config->port_clock; | 1647 | intel_dp->link_rate = link_rate; |
1647 | intel_dp->lane_count = pipe_config->lane_count; | 1648 | intel_dp->lane_count = lane_count; |
1648 | intel_dp->link_mst = intel_crtc_has_type(pipe_config, INTEL_OUTPUT_DP_MST); | 1649 | intel_dp->link_mst = link_mst; |
1649 | } | 1650 | } |
1650 | 1651 | ||
1651 | static void intel_dp_prepare(struct intel_encoder *encoder, | 1652 | static void intel_dp_prepare(struct intel_encoder *encoder, |
@@ -1658,7 +1659,10 @@ static void intel_dp_prepare(struct intel_encoder *encoder, | |||
1658 | struct intel_crtc *crtc = to_intel_crtc(encoder->base.crtc); | 1659 | struct intel_crtc *crtc = to_intel_crtc(encoder->base.crtc); |
1659 | const struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode; | 1660 | const struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode; |
1660 | 1661 | ||
1661 | intel_dp_set_link_params(intel_dp, pipe_config); | 1662 | intel_dp_set_link_params(intel_dp, pipe_config->port_clock, |
1663 | pipe_config->lane_count, | ||
1664 | intel_crtc_has_type(pipe_config, | ||
1665 | INTEL_OUTPUT_DP_MST)); | ||
1662 | 1666 | ||
1663 | /* | 1667 | /* |
1664 | * There are four kinds of DP registers: | 1668 | * There are four kinds of DP registers: |
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c index 29ba4f6bd01f..b228b46e1223 100644 --- a/drivers/gpu/drm/i915/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/intel_dp_mst.c | |||
@@ -153,8 +153,10 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder, | |||
153 | intel_ddi_clk_select(&intel_dig_port->base, pipe_config); | 153 | intel_ddi_clk_select(&intel_dig_port->base, pipe_config); |
154 | 154 | ||
155 | intel_prepare_dp_ddi_buffers(&intel_dig_port->base); | 155 | intel_prepare_dp_ddi_buffers(&intel_dig_port->base); |
156 | 156 | intel_dp_set_link_params(intel_dp, | |
157 | intel_dp_set_link_params(intel_dp, pipe_config); | 157 | pipe_config->port_clock, |
158 | pipe_config->lane_count, | ||
159 | true); | ||
158 | 160 | ||
159 | intel_ddi_init_dp_buf_reg(&intel_dig_port->base); | 161 | intel_ddi_init_dp_buf_reg(&intel_dig_port->base); |
160 | 162 | ||
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index e1cdbb2e7b8e..fef4b362d55b 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -1383,7 +1383,8 @@ bool intel_dp_init(struct drm_device *dev, i915_reg_t output_reg, enum port port | |||
1383 | bool intel_dp_init_connector(struct intel_digital_port *intel_dig_port, | 1383 | bool intel_dp_init_connector(struct intel_digital_port *intel_dig_port, |
1384 | struct intel_connector *intel_connector); | 1384 | struct intel_connector *intel_connector); |
1385 | void intel_dp_set_link_params(struct intel_dp *intel_dp, | 1385 | void intel_dp_set_link_params(struct intel_dp *intel_dp, |
1386 | const struct intel_crtc_state *pipe_config); | 1386 | int link_rate, uint8_t lane_count, |
1387 | bool link_mst); | ||
1387 | void intel_dp_start_link_train(struct intel_dp *intel_dp); | 1388 | void intel_dp_start_link_train(struct intel_dp *intel_dp); |
1388 | void intel_dp_stop_link_train(struct intel_dp *intel_dp); | 1389 | void intel_dp_stop_link_train(struct intel_dp *intel_dp); |
1389 | void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode); | 1390 | void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode); |