summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorRodrigo Vivi2015-08-25 01:38:23 +0200
committerDaniel Vetter2015-08-26 08:46:41 +0200
commit8be6ca8537e1230da8e92c753df4125151a3f6b1 (patch)
tree383b028d79fc23bb5d9b2a27d010be2799e4caf4 /drivers/gpu/drm/i915/intel_display.c
parentdrm/i915: Change SRM, LRM instructions to use correct length (diff)
downloadkernel-qcow2-linux-8be6ca8537e1230da8e92c753df4125151a3f6b1.tar.gz
kernel-qcow2-linux-8be6ca8537e1230da8e92c753df4125151a3f6b1.tar.xz
kernel-qcow2-linux-8be6ca8537e1230da8e92c753df4125151a3f6b1.zip
drm/i915: Also call frontbuffer flip when disabling planes.
We also need to call the frontbuffer flip to trigger proper invalidations when disabling planes. Otherwise we will miss screen updates when disabling sprites or cursor. On core platforms where HW tracking also works, this issue is totally masked because HW tracking triggers PSR exit however on VLV/CHV that has only SW tracking we miss screen updates when disabling planes. It was caught with kms_psr_sink_crc sprite_plane_onoff and cursor_plane_onoff subtests running on VLV/CHV. This is probably a regression since I can also get this with the manual test case, but with so many changes on atomic modeset I couldn't track exactly when this was introduced. Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 542fb8c34412..cf8dfa53e338 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -11627,7 +11627,7 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state,
intel_crtc->atomic.update_wm_pre = true;
}
- if (visible)
+ if (visible || was_visible)
intel_crtc->atomic.fb_bits |=
to_intel_plane(plane)->frontbuffer_bit;