Commit 7bff9779 authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Manasi Navare

drm/i915: Fix regression with crtc disable ordering

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: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Fixes: 66d9cec8 ("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: default avatarManasi Navare <manasi.d.navare@intel.com>
Reviewed-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
Signed-off-by: default avatarManasi Navare <manasi.d.navare@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190830101644.8740-1-maarten.lankhorst@linux.intel.com
parent aabbe344
...@@ -13784,7 +13784,15 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state) ...@@ -13784,7 +13784,15 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state)
struct intel_crtc *crtc; struct intel_crtc *crtc;
int i; 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)) if (!needs_modeset(new_crtc_state))
continue; continue;
...@@ -13963,15 +13971,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state) ...@@ -13963,15 +13971,8 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
if (state->modeset) if (state->modeset)
wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_MODESET); wakeref = intel_display_power_get(dev_priv, POWER_DOMAIN_MODESET);
/* for_each_oldnew_intel_crtc_in_state(state, crtc, old_crtc_state,
* Disable CRTC/pipes in reverse order because some features(MST in new_crtc_state, i) {
* 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) || if (needs_modeset(new_crtc_state) ||
new_crtc_state->update_pipe) { new_crtc_state->update_pipe) {
......
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