]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Add primary plane to mask if it's visible
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Wed, 23 Sep 2015 14:11:41 +0000 (16:11 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 30 Sep 2015 08:20:04 +0000 (10:20 +0200)
This fixes the warnings like

"plane A assertion failure, should be disabled but not"

that on the initial modeset during boot. This can happen if
the primary plane is enabled by the firmware, but inheriting
it fails because the DMAR is active or for other reasons.

Most likely caused by

commit 8ae31578b8345cccc2ed68b6390a9bdc4b514358
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Mon Jun 1 12:49:54 2015 +0200

    drm/i915: update plane state during init

This is the 4.4 version of

commit db31ffa588781e75aade43eb4f599cc6893b66e2
Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Date:   Tue Sep 15 14:28:54 2015 +0200

    drm/i915: Add primary plane to mask if it's visible

Reported-by: Andreas Reis <andreas.reis@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91429
Reported-and-tested-by: Emil Renner Berthing <kernel@esmil.dk>
Tested-by: Andreas Reis <andreas.reis@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 45ec0b8bf43a58a16f39c334c032e2db1e5e4882..036c704f3067a9784fc71b28ee174615ac3ad918 100644 (file)
@@ -15128,11 +15128,15 @@ static bool primary_get_hw_state(struct intel_plane *plane)
 /* FIXME read out full plane state for all planes */
 static void readout_plane_state(struct intel_crtc *crtc)
 {
+       struct drm_plane *primary = crtc->base.primary;
        struct intel_plane_state *plane_state =
-               to_intel_plane_state(crtc->base.primary->state);
+               to_intel_plane_state(primary->state);
 
        plane_state->visible =
-               primary_get_hw_state(to_intel_plane(crtc->base.primary));
+               primary_get_hw_state(to_intel_plane(primary));
+
+       if (plane_state->visible)
+               crtc->base.state->plane_mask |= 1 << drm_plane_index(primary);
 }
 
 static void intel_modeset_readout_hw_state(struct drm_device *dev)