aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c6
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c50
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h2
3 files changed, 4 insertions, 54 deletions
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 7a6806d77678..eb8f4e3bb85f 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1453,8 +1453,8 @@ static void bxt_ddi_clock_get(struct intel_encoder *encoder,
1453 ddi_dotclock_get(pipe_config); 1453 ddi_dotclock_get(pipe_config);
1454} 1454}
1455 1455
1456void intel_ddi_clock_get(struct intel_encoder *encoder, 1456static void intel_ddi_clock_get(struct intel_encoder *encoder,
1457 struct intel_crtc_state *pipe_config) 1457 struct intel_crtc_state *pipe_config)
1458{ 1458{
1459 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 1459 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
1460 1460
@@ -2533,7 +2533,7 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
2533 struct intel_crtc_state *pipe_config) 2533 struct intel_crtc_state *pipe_config)
2534{ 2534{
2535 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 2535 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
2536 struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); 2536 struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->base.crtc);
2537 enum transcoder cpu_transcoder = pipe_config->cpu_transcoder; 2537 enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
2538 struct intel_digital_port *intel_dig_port; 2538 struct intel_digital_port *intel_dig_port;
2539 u32 temp, flags = 0; 2539 u32 temp, flags = 0;
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index d523302e5081..6f11bb35f66f 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -286,56 +286,8 @@ static void intel_dp_mst_enc_get_config(struct intel_encoder *encoder,
286{ 286{
287 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base); 287 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
288 struct intel_digital_port *intel_dig_port = intel_mst->primary; 288 struct intel_digital_port *intel_dig_port = intel_mst->primary;
289 struct intel_crtc *crtc = to_intel_crtc(pipe_config->base.crtc);
290 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
291 enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
292 u32 temp, flags = 0;
293
294 pipe_config->output_types |= BIT(INTEL_OUTPUT_DP_MST);
295
296 pipe_config->has_audio =
297 intel_ddi_is_audio_enabled(dev_priv, crtc);
298
299 temp = I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder));
300 if (temp & TRANS_DDI_PHSYNC)
301 flags |= DRM_MODE_FLAG_PHSYNC;
302 else
303 flags |= DRM_MODE_FLAG_NHSYNC;
304 if (temp & TRANS_DDI_PVSYNC)
305 flags |= DRM_MODE_FLAG_PVSYNC;
306 else
307 flags |= DRM_MODE_FLAG_NVSYNC;
308
309 switch (temp & TRANS_DDI_BPC_MASK) {
310 case TRANS_DDI_BPC_6:
311 pipe_config->pipe_bpp = 18;
312 break;
313 case TRANS_DDI_BPC_8:
314 pipe_config->pipe_bpp = 24;
315 break;
316 case TRANS_DDI_BPC_10:
317 pipe_config->pipe_bpp = 30;
318 break;
319 case TRANS_DDI_BPC_12:
320 pipe_config->pipe_bpp = 36;
321 break;
322 default:
323 break;
324 }
325 pipe_config->base.adjusted_mode.flags |= flags;
326
327 pipe_config->lane_count =
328 ((temp & DDI_PORT_WIDTH_MASK) >> DDI_PORT_WIDTH_SHIFT) + 1;
329
330 intel_dp_get_m_n(crtc, pipe_config);
331
332 intel_ddi_clock_get(&intel_dig_port->base, pipe_config);
333 289
334 if (IS_GEN9_LP(dev_priv)) 290 intel_ddi_get_config(&intel_dig_port->base, pipe_config);
335 pipe_config->lane_lat_optim_mask =
336 bxt_ddi_phy_get_lane_lat_optim_mask(encoder);
337
338 intel_ddi_compute_min_voltage_level(dev_priv, pipe_config);
339} 291}
340 292
341static int intel_dp_mst_get_ddc_modes(struct drm_connector *connector) 293static int intel_dp_mst_get_ddc_modes(struct drm_connector *connector)
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 3828d9bee7f5..4498d743cebc 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1295,8 +1295,6 @@ bool intel_ddi_is_audio_enabled(struct drm_i915_private *dev_priv,
1295void intel_ddi_get_config(struct intel_encoder *encoder, 1295void intel_ddi_get_config(struct intel_encoder *encoder,
1296 struct intel_crtc_state *pipe_config); 1296 struct intel_crtc_state *pipe_config);
1297 1297
1298void intel_ddi_clock_get(struct intel_encoder *encoder,
1299 struct intel_crtc_state *pipe_config);
1300void intel_ddi_set_vc_payload_alloc(const struct intel_crtc_state *crtc_state, 1298void intel_ddi_set_vc_payload_alloc(const struct intel_crtc_state *crtc_state,
1301 bool state); 1299 bool state);
1302void intel_ddi_compute_min_voltage_level(struct drm_i915_private *dev_priv, 1300void intel_ddi_compute_min_voltage_level(struct drm_i915_private *dev_priv,