aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>2015-03-20 10:18:13 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-03-26 13:00:18 -0400
commite75f4771f81e969d60177cb0c72526f4a05cbb5f (patch)
tree35757bee7bf75701f086796c90bee103b2ac3efc
parent3165c074175cddab1dcfd553042ea4f363bc76e7 (diff)
drm/i915: Don't use staged config in intel_dp_mst_compute_config()
Move towards atomic by using the legacy modeset's drm_atomic_state instead. Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_dp_mst.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index 37c45f8d0135..5329c855acce 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -36,11 +36,11 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
36 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base); 36 struct intel_dp_mst_encoder *intel_mst = enc_to_mst(&encoder->base);
37 struct intel_digital_port *intel_dig_port = intel_mst->primary; 37 struct intel_digital_port *intel_dig_port = intel_mst->primary;
38 struct intel_dp *intel_dp = &intel_dig_port->dp; 38 struct intel_dp *intel_dp = &intel_dig_port->dp;
39 struct drm_device *dev = encoder->base.dev; 39 struct drm_atomic_state *state;
40 int bpp; 40 int bpp, i;
41 int lane_count, slots, rate; 41 int lane_count, slots, rate;
42 struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode; 42 struct drm_display_mode *adjusted_mode = &pipe_config->base.adjusted_mode;
43 struct intel_connector *found = NULL, *intel_connector; 43 struct intel_connector *found = NULL;
44 int mst_pbn; 44 int mst_pbn;
45 45
46 pipe_config->dp_encoder_is_mst = true; 46 pipe_config->dp_encoder_is_mst = true;
@@ -68,9 +68,14 @@ static bool intel_dp_mst_compute_config(struct intel_encoder *encoder,
68 pipe_config->pipe_bpp = 24; 68 pipe_config->pipe_bpp = 24;
69 pipe_config->port_clock = rate; 69 pipe_config->port_clock = rate;
70 70
71 for_each_intel_connector(dev, intel_connector) { 71 state = pipe_config->base.state;
72 if (intel_connector->new_encoder == encoder) { 72
73 found = intel_connector; 73 for (i = 0; i < state->num_connector; i++) {
74 if (!state->connectors[i])
75 continue;
76
77 if (state->connector_states[i]->best_encoder == &encoder->base) {
78 found = to_intel_connector(state->connectors[i]);
74 break; 79 break;
75 } 80 }
76 } 81 }