drm/atomic: Clear crtc_state->active in drm_atomic_helper_set_config.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Mon, 1 Jun 2015 06:59:53 +0000 (08:59 +0200)
committerDave Airlie <airlied@redhat.com>
Wed, 3 Jun 2015 23:20:31 +0000 (09:20 +1000)
This fixes some regressions in i915 when converting to atomic.
set_config failed with -EINVAL, and I received the following warning
in dmesg:

[drm:drm_atomic_crtc_check] [CRTC:20] active without enabled

Solve this by clearing active when a crtc is disabled.

Because crtc_state->enable implies that connectors are active the
change from disabled->enabled can only happen for the crtc that's
being set_config'd, and checking for !crtc_state->enable is sufficient
here.

Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_atomic_helper.c

index a900858fa2657c8dabbd81fb1ec19ab59e2af4ac..536ae4da4665e4bebd737585e02f2c1f98c61305 100644 (file)
@@ -1563,6 +1563,8 @@ static int update_output_state(struct drm_atomic_state *state,
 
                crtc_state->enable =
                        drm_atomic_connectors_for_crtc(state, crtc);
+               if (!crtc_state->enable)
+                       crtc_state->active = false;
        }
 
        return 0;