drm/i915: Fix regression with crtc disable ordering
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Fri, 30 Aug 2019 10:16:44 +0000 (12:16 +0200)
committerManasi Navare <manasi.d.navare@intel.com>
Fri, 30 Aug 2019 21:18:31 +0000 (14:18 -0700)
When we moved the code to disable crtc's to a separate patch,
we forgot to ensure that for_each_oldnew_intel_crtc_in_state_reverse()
was moved as well.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Fixes: 66d9cec8a6c9 ("drm/i915/display: Move the commit_tail() disable sequence to separate function")
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190830101644.8740-1-maarten.lankhorst@linux.intel.com
drivers/gpu/drm/i915/display/intel_display.c

index b38d842ff6ec6700876b97bbf42de72a3ec4ffe3..e661e20991184b7897c89c14b0f0a6c3fec31e0a 100644 (file)
@@ -13784,7 +13784,15 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state)
        struct intel_crtc *crtc;
        int i;
 
-       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))
                        continue;
 
@@ -13963,15 +13971,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
        if (state->modeset)
                wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_MODESET);
 
-       /*
-        * 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) {
+       for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
+                                           new_crtc_state, i) {
                if (needs_modeset(new_crtc_state) ||
                    new_crtc_state->update_pipe) {