drm/i915: Move check_digital_port_conflicts() earier
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 15 Oct 2019 19:30:25 +0000 (22:30 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 24 Oct 2019 18:22:25 +0000 (21:22 +0300)
check_digital_port_conflicts() is done needlessly late. Move it earlier.
This will be needed as later on we want to set any_ms=true a bit later
for non-modesets too and we can't call this guy without the
connection_mutex held.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191015193035.25982-4-ville.syrjala@linux.intel.com
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
drivers/gpu/drm/i915/display/intel_display.c

index ed3f501ed202a4e3c188fc2bc13c6568ad07053d..dea81199558478d59db4e9b9aabedb9d239281f4 100644 (file)
@@ -13718,11 +13718,6 @@ static int intel_modeset_checks(struct intel_atomic_state *state)
        struct intel_crtc *crtc;
        int ret, i;
 
-       if (!check_digital_port_conflicts(state)) {
-               DRM_DEBUG_KMS("rejecting conflicting digital port configuration\n");
-               return -EINVAL;
-       }
-
        /* keep the current setting */
        if (!state->cdclk.force_min_cdclk_changed)
                state->cdclk.force_min_cdclk = dev_priv->cdclk.force_min_cdclk;
@@ -13884,6 +13879,12 @@ static int intel_atomic_check(struct drm_device *dev,
                        any_ms = true;
        }
 
+       if (any_ms && !check_digital_port_conflicts(state)) {
+               DRM_DEBUG_KMS("rejecting conflicting digital port configuration\n");
+               ret = EINVAL;
+               goto fail;
+       }
+
        ret = drm_dp_mst_atomic_check(&state->base);
        if (ret)
                goto fail;