aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c3
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c7
-rw-r--r--drivers/gpu/drm/i915/intel_display.c2
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c3
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c4
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h9
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.c3
-rw-r--r--drivers/gpu/drm/i915/intel_dvo.c3
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c3
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c3
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c3
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c3
12 files changed, 29 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index 6e6c4bde105a..8fe36d049d2f 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -261,7 +261,8 @@ intel_crt_mode_valid(struct drm_connector *connector,
261} 261}
262 262
263static bool intel_crt_compute_config(struct intel_encoder *encoder, 263static bool intel_crt_compute_config(struct intel_encoder *encoder,
264 struct intel_crtc_state *pipe_config) 264 struct intel_crtc_state *pipe_config,
265 struct drm_connector_state *conn_state)
265{ 266{
266 struct drm_device *dev = encoder->base.dev; 267 struct drm_device *dev = encoder->base.dev;
267 268
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 66feb1eafc93..b23872839fe0 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2285,7 +2285,8 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
2285} 2285}
2286 2286
2287static bool intel_ddi_compute_config(struct intel_encoder *encoder, 2287static bool intel_ddi_compute_config(struct intel_encoder *encoder,
2288 struct intel_crtc_state *pipe_config) 2288 struct intel_crtc_state *pipe_config,
2289 struct drm_connector_state *conn_state)
2289{ 2290{
2290 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 2291 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
2291 int type = encoder->type; 2292 int type = encoder->type;
@@ -2298,9 +2299,9 @@ static bool intel_ddi_compute_config(struct intel_encoder *encoder,
2298 pipe_config->cpu_transcoder = TRANSCODER_EDP; 2299 pipe_config->cpu_transcoder = TRANSCODER_EDP;
2299 2300
2300 if (type == INTEL_OUTPUT_HDMI) 2301 if (type == INTEL_OUTPUT_HDMI)
2301 ret = intel_hdmi_compute_config(encoder, pipe_config); 2302 ret = intel_hdmi_compute_config(encoder, pipe_config, conn_state);
2302 else 2303 else
2303 ret = intel_dp_compute_config(encoder, pipe_config); 2304 ret = intel_dp_compute_config(encoder, pipe_config, conn_state);
2304 2305
2305 if (IS_BROXTON(dev_priv) && ret) 2306 if (IS_BROXTON(dev_priv) && ret)
2306 pipe_config->lane_lat_optim_mask = 2307 pipe_config->lane_lat_optim_mask =
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 554b3f69f4a5..f44858d2650e 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13042,7 +13042,7 @@ encoder_retry:
13042 13042
13043 encoder = to_intel_encoder(connector_state->best_encoder); 13043 encoder = to_intel_encoder(connector_state->best_encoder);
13044 13044
13045 if (!(encoder->compute_config(encoder, pipe_config))) { 13045 if (!(encoder->compute_config(encoder, pipe_config, connector_state))) {
13046 DRM_DEBUG_KMS("Encoder config failure\n"); 13046 DRM_DEBUG_KMS("Encoder config failure\n");
13047 goto fail; 13047 goto fail;
13048 } 13048 }
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 30cbc7e2887f..9bf71f5579bb 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1463,7 +1463,8 @@ void intel_dp_compute_rate(struct intel_dp *intel_dp, int port_clock,
1463 1463
1464bool 1464bool
1465intel_dp_compute_config(struct intel_encoder *encoder, 1465intel_dp_compute_config(struct intel_encoder *encoder,
1466 struct intel_crtc_state *pipe_config) 1466 struct intel_crtc_state *pipe_config,
1467 struct drm_connector_state *conn_state)
1467{ 1468{
1468 struct drm_device *dev = encoder->base.dev; 1469 struct drm_device *dev = encoder->base.dev;
1469 struct drm_i915_private *dev_priv = to_i915(dev); 1470 struct drm_i915_private *dev_priv = to_i915(dev);
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 8f7594ef39a9..5b5878e3bf6e 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -31,7 +31,8 @@
31#include <drm/drm_edid.h> 31#include <drm/drm_edid.h>
32 32
33static bool intel_dp_mst_compute_config(struct intel_encoder *encoder, 33static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
34 struct intel_crtc_state *pipe_config) 34 struct intel_crtc_state *pipe_config,
35 struct drm_connector_state *conn_state)
35{ 36{
36 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base); 37 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
37 struct intel_digital_port *intel_dig_port = intel_mst->primary; 38 struct intel_digital_port *intel_dig_port = intel_mst->primary;
@@ -54,7 +55,6 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
54 */ 55 */
55 lane_count = drm_dp_max_lane_count(intel_dp->dpcd); 56 lane_count = drm_dp_max_lane_count(intel_dp->dpcd);
56 57
57
58 pipe_config->lane_count = lane_count; 58 pipe_config->lane_count = lane_count;
59 59
60 pipe_config->pipe_bpp = 24; 60 pipe_config->pipe_bpp = 24;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 37f36358c877..0b72eed5861f 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -205,7 +205,8 @@ struct intel_encoder {
205 unsigned int cloneable; 205 unsigned int cloneable;
206 void (*hot_plug)(struct intel_encoder *); 206 void (*hot_plug)(struct intel_encoder *);
207 bool (*compute_config)(struct intel_encoder *, 207 bool (*compute_config)(struct intel_encoder *,
208 struct intel_crtc_state *); 208 struct intel_crtc_state *,
209 struct drm_connector_state *);
209 void (*pre_pll_enable)(struct intel_encoder *, 210 void (*pre_pll_enable)(struct intel_encoder *,
210 struct intel_crtc_state *, 211 struct intel_crtc_state *,
211 struct drm_connector_state *); 212 struct drm_connector_state *);
@@ -1389,7 +1390,8 @@ void intel_dp_encoder_suspend(struct intel_encoder *intel_encoder);
1389void intel_dp_encoder_destroy(struct drm_encoder *encoder); 1390void intel_dp_encoder_destroy(struct drm_encoder *encoder);
1390int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc); 1391int intel_dp_sink_crc(struct intel_dp *intel_dp, u8 *crc);
1391bool intel_dp_compute_config(struct intel_encoder *encoder, 1392bool intel_dp_compute_config(struct intel_encoder *encoder,
1392 struct intel_crtc_state *pipe_config); 1393 struct intel_crtc_state *pipe_config,
1394 struct drm_connector_state *conn_state);
1393bool intel_dp_is_edp(struct drm_device *dev, enum port port); 1395bool intel_dp_is_edp(struct drm_device *dev, enum port port);
1394enum irqreturn intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, 1396enum irqreturn intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port,
1395 bool long_hpd); 1397 bool long_hpd);
@@ -1514,7 +1516,8 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
1514 struct intel_connector *intel_connector); 1516 struct intel_connector *intel_connector);
1515struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder); 1517struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder);
1516bool intel_hdmi_compute_config(struct intel_encoder *encoder, 1518bool intel_hdmi_compute_config(struct intel_encoder *encoder,
1517 struct intel_crtc_state *pipe_config); 1519 struct intel_crtc_state *pipe_config,
1520 struct drm_connector_state *conn_state);
1518void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable); 1521void intel_dp_dual_mode_set_tmds_output(struct intel_hdmi *hdmi, bool enable);
1519 1522
1520 1523
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index 107b70c19333..1a2e1dcbff1a 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -312,7 +312,8 @@ static inline bool is_cmd_mode(struct intel_dsi *intel_dsi)
312} 312}
313 313
314static bool intel_dsi_compute_config(struct intel_encoder *encoder, 314static bool intel_dsi_compute_config(struct intel_encoder *encoder,
315 struct intel_crtc_state *pipe_config) 315 struct intel_crtc_state *pipe_config,
316 struct drm_connector_state *conn_state)
316{ 317{
317 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 318 struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
318 struct intel_dsi *intel_dsi = container_of(encoder, struct intel_dsi, 319 struct intel_dsi *intel_dsi = container_of(encoder, struct intel_dsi,
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index 52dde9b71ca5..141483fdcf7b 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -239,7 +239,8 @@ intel_dvo_mode_valid(struct drm_connector *connector,
239} 239}
240 240
241static bool intel_dvo_compute_config(struct intel_encoder *encoder, 241static bool intel_dvo_compute_config(struct intel_encoder *encoder,
242 struct intel_crtc_state *pipe_config) 242 struct intel_crtc_state *pipe_config,
243 struct drm_connector_state *conn_state)
243{ 244{
244 struct intel_dvo *intel_dvo = enc_to_dvo(encoder); 245 struct intel_dvo *intel_dvo = enc_to_dvo(encoder);
245 const struct drm_display_mode *fixed_mode = 246 const struct drm_display_mode *fixed_mode =
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 560eff9a3694..1a116a6a1817 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -1301,7 +1301,8 @@ static bool hdmi_12bpc_possible(struct intel_crtc_state *crtc_state)
1301} 1301}
1302 1302
1303bool intel_hdmi_compute_config(struct intel_encoder *encoder, 1303bool intel_hdmi_compute_config(struct intel_encoder *encoder,
1304 struct intel_crtc_state *pipe_config) 1304 struct intel_crtc_state *pipe_config,
1305 struct drm_connector_state *conn_state)
1305{ 1306{
1306 struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base); 1307 struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
1307 struct drm_device *dev = encoder->base.dev; 1308 struct drm_device *dev = encoder->base.dev;
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index f8e55df98883..29d45b099e51 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -395,7 +395,8 @@ intel_lvds_mode_valid(struct drm_connector *connector,
395} 395}
396 396
397static bool intel_lvds_compute_config(struct intel_encoder *intel_encoder, 397static bool intel_lvds_compute_config(struct intel_encoder *intel_encoder,
398 struct intel_crtc_state *pipe_config) 398 struct intel_crtc_state *pipe_config,
399 struct drm_connector_state *conn_state)
399{ 400{
400 struct drm_device *dev = intel_encoder->base.dev; 401 struct drm_device *dev = intel_encoder->base.dev;
401 struct intel_lvds_encoder *lvds_encoder = 402 struct intel_lvds_encoder *lvds_encoder =
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
index cff4e9dcf4be..e3bc8d4bb781 100644
--- a/drivers/gpu/drm/i915/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/intel_sdvo.c
@@ -1125,7 +1125,8 @@ static void i9xx_adjust_sdvo_tv_clock(struct intel_crtc_state *pipe_config)
1125} 1125}
1126 1126
1127static bool intel_sdvo_compute_config(struct intel_encoder *encoder, 1127static bool intel_sdvo_compute_config(struct intel_encoder *encoder,
1128 struct intel_crtc_state *pipe_config) 1128 struct intel_crtc_state *pipe_config,
1129 struct drm_connector_state *conn_state)
1129{ 1130{
1130 struct intel_sdvo *intel_sdvo = to_sdvo(encoder); 1131 struct intel_sdvo *intel_sdvo = to_sdvo(encoder);
1131 struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode; 1132 struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
index 440ce7933573..d960e4866595 100644
--- a/drivers/gpu/drm/i915/intel_tv.c
+++ b/drivers/gpu/drm/i915/intel_tv.c
@@ -912,7 +912,8 @@ intel_tv_get_config(struct intel_encoder *encoder,
912 912
913static bool 913static bool
914intel_tv_compute_config(struct intel_encoder *encoder, 914intel_tv_compute_config(struct intel_encoder *encoder,
915 struct intel_crtc_state *pipe_config) 915 struct intel_crtc_state *pipe_config,
916 struct drm_connector_state *conn_state)
916{ 917{
917 struct intel_tv *intel_tv = enc_to_tv(encoder); 918 struct intel_tv *intel_tv = enc_to_tv(encoder);
918 const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv); 919 const struct tv_mode *tv_mode = intel_tv_mode_find(intel_tv);