On Thu, Apr 02, 2015 at 02:47:59PM +0300, Ander Conselvan de Oliveira wrote: > Reduce dependency on the staged config by using the atomic state > instead. > > Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@xxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 22 ++++++++++++++-------- > 1 file changed, 14 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 207c713..b1fbe9d 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -10658,23 +10658,30 @@ static bool check_encoder_cloning(struct intel_crtc *crtc) > return true; > } > > -static bool check_digital_port_conflicts(struct drm_device *dev) > +static bool check_digital_port_conflicts(struct drm_atomic_state *state) > { > - struct intel_connector *connector; > + struct drm_device *dev = state->dev; > + struct intel_encoder *encoder; > + struct drm_connector_state *connector_state; > unsigned int used_ports = 0; > + int i; > > /* > * Walk the connector list instead of the encoder > * list to detect the problem on ddi platforms > * where there's just one encoder per digital port. > */ > - for_each_intel_connector(dev, connector) { > - struct intel_encoder *encoder = connector->new_encoder; > + for (i = 0; i < state->num_connector; i++) { > + if (!state->connectors[i]) > + continue; More users for for_each_connector_in_state! -Daniel > > - if (!encoder) > + connector_state = state->connector_states[i]; > + if (!connector_state->best_encoder) > continue; > > - WARN_ON(!encoder->new_crtc); > + encoder = to_intel_encoder(connector_state->best_encoder); > + > + WARN_ON(!connector_state->crtc); > > switch (encoder->type) { > unsigned int port_mask; > @@ -10716,7 +10723,6 @@ intel_modeset_pipe_config(struct drm_crtc *crtc, > struct drm_display_mode *mode, > struct drm_atomic_state *state) > { > - struct drm_device *dev = crtc->dev; > struct intel_encoder *encoder; > struct intel_connector *connector; > struct drm_connector_state *connector_state; > @@ -10730,7 +10736,7 @@ intel_modeset_pipe_config(struct drm_crtc *crtc, > return ERR_PTR(-EINVAL); > } > > - if (!check_digital_port_conflicts(dev)) { > + if (!check_digital_port_conflicts(state)) { > DRM_DEBUG_KMS("rejecting conflicting digital port configuration\n"); > return ERR_PTR(-EINVAL); > } > -- > 2.1.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx