Merge drm/drm-next into drm-intel-next
[linux-block.git] / drivers / gpu / drm / i915 / display / intel_dp.c
index 2f9b1c02ad02f8829305bdf3e90320d722d9a5ff..a5eca5396fedf35c48feafad25e949026d79ba1b 100644 (file)
@@ -5012,12 +5012,21 @@ static int intel_dp_connector_atomic_check(struct drm_connector *conn,
 {
        struct drm_i915_private *dev_priv = to_i915(conn->dev);
        struct intel_atomic_state *state = to_intel_atomic_state(_state);
+       struct drm_connector_state *conn_state = drm_atomic_get_new_connector_state(_state, conn);
+       struct intel_connector *intel_conn = to_intel_connector(conn);
+       struct intel_dp *intel_dp = enc_to_intel_dp(intel_conn->encoder);
        int ret;
 
        ret = intel_digital_connector_atomic_check(conn, &state->base);
        if (ret)
                return ret;
 
+       if (intel_dp_mst_source_support(intel_dp)) {
+               ret = drm_dp_mst_root_conn_atomic_check(conn_state, &intel_dp->mst_mgr);
+               if (ret)
+                       return ret;
+       }
+
        /*
         * We don't enable port sync on BDW due to missing w/as and
         * due to not having adjusted the modeset sequence appropriately.