drm/i915: Only update state on crtc's that are part of the atomic state.

This is probably hard to hit right now because in most cases all
atomic locks are taken, but after conversion to atomic this will make
it more likely to corrupt the crtc->config pointer, resulting in hard
to find bugs.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Maarten Lankhorst 2015-07-13 16:30:14 +02:00 committed by Daniel Vetter
parent cc017fb4d7
commit 8a75d157cc
1 changed files with 2 additions and 1 deletions

View File

@ -12312,6 +12312,7 @@ intel_modeset_update_state(struct drm_atomic_state *state)
struct drm_crtc *crtc; struct drm_crtc *crtc;
struct drm_crtc_state *crtc_state; struct drm_crtc_state *crtc_state;
struct drm_connector *connector; struct drm_connector *connector;
int i;
intel_shared_dpll_commit(state); intel_shared_dpll_commit(state);
@ -12331,7 +12332,7 @@ intel_modeset_update_state(struct drm_atomic_state *state)
intel_modeset_update_staged_output_state(state->dev); intel_modeset_update_staged_output_state(state->dev);
/* Double check state. */ /* Double check state. */
for_each_crtc(dev, crtc) { for_each_crtc_in_state(state, crtc, crtc_state, i) {
WARN_ON(crtc->state->enable != intel_crtc_in_use(crtc)); WARN_ON(crtc->state->enable != intel_crtc_in_use(crtc));
to_intel_crtc(crtc)->config = to_intel_crtc_state(crtc->state); to_intel_crtc(crtc)->config = to_intel_crtc_state(crtc->state);