Commit 51ec53da authored by Daniel Vetter's avatar Daniel Vetter

drm/i915: Make intel_get_pipe_from_connector atomic

Drive-by fixup while looking at all the connector_list walkers -
holding connection_mutex does actually _not_ give you locking to look
at the legacy drm_connector->encoder->crtc pointer chain. That one is
solely owned by the atomic commit workers. Instead we must inspect the
atomic state.
Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170301095226.30584-4-daniel.vetter@ffwll.ch
parent f57c8421
...@@ -13889,15 +13889,14 @@ static int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe) ...@@ -13889,15 +13889,14 @@ static int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe)
enum pipe intel_get_pipe_from_connector(struct intel_connector *connector) enum pipe intel_get_pipe_from_connector(struct intel_connector *connector)
{ {
struct drm_encoder *encoder = connector->base.encoder;
struct drm_device *dev = connector->base.dev; struct drm_device *dev = connector->base.dev;
WARN_ON(!drm_modeset_is_locked(&dev->mode_config.connection_mutex)); WARN_ON(!drm_modeset_is_locked(&dev->mode_config.connection_mutex));
if (!encoder || WARN_ON(!encoder->crtc)) if (!connector->base.state->crtc)
return INVALID_PIPE; return INVALID_PIPE;
return to_intel_crtc(encoder->crtc)->pipe; return to_intel_crtc(connector->base.state->crtc)->pipe;
} }
int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data, int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment