drm/i915: Clear crtc atomic flags at beginning of transaction
authorMatt Roper <matthew.d.roper@intel.com>
Thu, 9 Apr 2015 17:48:38 +0000 (10:48 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 10 Apr 2015 07:37:01 +0000 (09:37 +0200)
Once we have full atomic modeset, these kind of flags should be in a
real intel_crtc_state that's tracked properly.  In the meantime, make
sure we clear out any old flags at the beginning of a transaction so
that we don't wind up seeing leftover flags from old transactions that
were checked, but never went to the commit step.  At the moment, a
failed check or prepare could leave stale flags behind that interfere
with the next atomic transaction.

v2: Just do a memset; the series this patch was originally part of
    placed additional fields into the structure that shouldn't be
    cleared, but that's no longer the case.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_atomic.c

index 3903b90fb64efa80e1906d3ef1c6b4ad75866092..b4ea6762e4ef018ae60e31a6912994605fc71cc7 100644 (file)
@@ -76,6 +76,8 @@ int intel_atomic_check(struct drm_device *dev,
        state->allow_modeset = false;
        for (i = 0; i < ncrtcs; i++) {
                struct intel_crtc *crtc = to_intel_crtc(state->crtcs[i]);
+               if (crtc)
+                       memset(&crtc->atomic, 0, sizeof(crtc->atomic));
                if (crtc && crtc->pipe != nuclear_pipe)
                        not_nuclear = true;
        }