]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
drm/atomic: Set all the changed flags in one place.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 6 Apr 2017 11:19:01 +0000 (13:19 +0200)
committerSean Paul <seanpaul@chromium.org>
Thu, 6 Apr 2017 21:00:27 +0000 (17:00 -0400)
Now that handle_conflicting_encoders cannot disable crtc's any more
it makes sense to set all the changed flags in 1 place.
This makes the code slightly less magical.

The (now removed) comment is out of date. The only reason the
active_changed was set late was because handle_conflicting_encoders
could disable connectors. This is no longer the case,
and we can put everything in 1 place.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1491477543-31257-3-git-send-email-maarten.lankhorst@linux.intel.com
drivers/gpu/drm/drm_atomic_helper.c

index 37a7fc7649a41549b73a4341baf6019053ac595b..2d506820285fc0ed06a213be481973a951879eb2 100644 (file)
@@ -515,6 +515,12 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
                        new_crtc_state->mode_changed = true;
                        new_crtc_state->connectors_changed = true;
                }
+
+               if (old_crtc_state->active != new_crtc_state->active) {
+                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active changed\n",
+                                        crtc->base.id, crtc->name);
+                       new_crtc_state->active_changed = true;
+               }
        }
 
        ret = handle_conflicting_encoders(state, false);
@@ -551,17 +557,6 @@ drm_atomic_helper_check_modeset(struct drm_device *dev,
                bool has_connectors =
                        !!new_crtc_state->connector_mask;
 
-               /*
-                * We must set ->active_changed after walking connectors for
-                * otherwise an update that only changes active would result in
-                * a full modeset because update_connector_routing force that.
-                */
-               if (old_crtc_state->active != new_crtc_state->active) {
-                       DRM_DEBUG_ATOMIC("[CRTC:%d:%s] active changed\n",
-                                        crtc->base.id, crtc->name);
-                       new_crtc_state->active_changed = true;
-               }
-
                if (!drm_atomic_crtc_needs_modeset(new_crtc_state))
                        continue;