]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
drm/i915: Disable pipes in reverse order
authorJosé Roberto de Souza <jose.souza@intel.com>
Fri, 23 Aug 2019 08:20:44 +0000 (01:20 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Tue, 27 Aug 2019 15:47:24 +0000 (08:47 -0700)
Disable CRTC/pipes in reverse order because some features (MST in
TGL+) requires master and slave relationship between pipes, so it
should always pick the lowest pipe as master as it will be enabled
first and disable in the reverse order so the master will be the last
one to be disabled.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190823082055.5992-13-lucas.demarchi@intel.com
drivers/gpu/drm/i915/display/intel_display.c

index ea2915dde6abb50d370aa4bcfb5d4f8ee7fcc2b1..a9f8be2cd3647d25b6e82d0713caf387662298e7 100644 (file)
@@ -13908,7 +13908,15 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
        if (state->modeset)
                wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_MODESET);
 
-       for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) {
+       /*
+        * Disable CRTC/pipes in reverse order because some features(MST in
+        * TGL+) requires master and slave relationship between pipes, so it
+        * should always pick the lowest pipe as master as it will be enabled
+        * first and disable in the reverse order so the master will be the
+        * last one to be disabled.
+        */
+       for_each_oldnew_intel_crtc_in_state_reverse(state, crtc, old_crtc_state,
+                                                   new_crtc_state, i) {
                if (needs_modeset(new_crtc_state) ||
                    new_crtc_state->update_pipe) {