[Intel-gfx] [PATCH] drm/i915: respect previous reg values on primary plane disable

Kevin Strasser kevin.strasser at linux.intel.com
Tue Oct 13 14:24:41 PDT 2015

On HSW the crc differs between black and disabled primary planes, causing an
assert to fail in the kms_universal_plane test. It seems that things like gamma
correction are causing the black primary plane case to result in a brighter
color than the disabled primary plane case.

Only toggle the enable bit instead of clearing the control register, making the
disable path more similar to that of the sprite plane.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89331
Testcase: igt/kms_universal_plane
Signed-off-by: Kevin Strasser <kevin.strasser at linux.intel.com>
 drivers/gpu/drm/i915/intel_display.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index cddb0c6..b6164d8e 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2829,7 +2829,7 @@ static void ironlake_update_primary_plane(struct drm_crtc *crtc,
 	int pixel_size;
 	if (!visible || !fb) {
-		I915_WRITE(reg, 0);
+		I915_WRITE(reg, I915_READ(reg) & ~DISPLAY_PLANE_ENABLE);
 		I915_WRITE(DSPSURF(plane), 0);

More information about the Intel-gfx mailing list