drm/i915: remove plane/cursor/pipe assertions from intel_crtc_disable
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Thu, 17 Jul 2014 14:16:39 +0000 (11:16 -0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 23 Jul 2014 05:05:40 +0000 (07:05 +0200)
Since we merged runtime PM support for DPMS, it is possible that these
assertions will be called when the power wells are disabled but a mode
is "set", resulting in "failed assertion" and "device suspended while
reading register" WARNs.

To reproduce the bug: disable all screens using mode unset, do a
modeset on one screen, disable it using DPMS, then try to do a mode
unset on it again to see the WARNs.

v2: The first version of this patch changed the assertions to also
check the power domains. Daniel suggested that it would be better to
just remove the assertions: "The modeset state checker
will already notice when we've failed to turn off the pipe. And we
check cursors and plane state in the enable sequence, too. Since we
use these asserts a lot to lock down the precise modeset sequence I
actually prefer if they're a bit dumb and don't check the power
wells."

Testcase: igt/rpm_rpm/dpms-mode-unset-lpsp
Testcase: igt/rpm_rpm/dpms-mode-unset-non-lpsp
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index f2416d764b03993375bd9095489e0e8a7ed60432..c18c2a71afacbbabe953cc515dc927588b75b4a6 100644 (file)
@@ -4930,10 +4930,6 @@ static void intel_crtc_disable(struct drm_crtc *crtc)
        intel_crtc_update_sarea(crtc, false);
        dev_priv->display.off(crtc);
 
-       assert_plane_disabled(dev->dev_private, to_intel_crtc(crtc)->plane);
-       assert_cursor_disabled(dev_priv, pipe);
-       assert_pipe_disabled(dev->dev_private, pipe);
-
        if (crtc->primary->fb) {
                mutex_lock(&dev->struct_mutex);
                intel_unpin_fb_obj(old_obj);