aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_sprite.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_sprite.c')
-rw-r--r--drivers/gpu/drm/i915/intel_sprite.c24
1 files changed, 10 insertions, 14 deletions
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index 03c2d4c11518..cd531fa997de 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -750,13 +750,6 @@ ivb_disable_plane(struct drm_plane *plane, struct drm_crtc *crtc)
750 I915_WRITE(SPRSURF(pipe), 0); 750 I915_WRITE(SPRSURF(pipe), 0);
751 751
752 intel_flush_primary_plane(dev_priv, intel_crtc->plane); 752 intel_flush_primary_plane(dev_priv, intel_crtc->plane);
753
754 /*
755 * Avoid underruns when disabling the sprite.
756 * FIXME remove once watermark updates are done properly.
757 */
758 intel_crtc->atomic.wait_vblank = true;
759 intel_crtc->atomic.update_sprite_watermarks |= (1 << drm_plane_index(plane));
760} 753}
761 754
762static int 755static int
@@ -941,13 +934,6 @@ ilk_disable_plane(struct drm_plane *plane, struct drm_crtc *crtc)
941 I915_WRITE(DVSSURF(pipe), 0); 934 I915_WRITE(DVSSURF(pipe), 0);
942 935
943 intel_flush_primary_plane(dev_priv, intel_crtc->plane); 936 intel_flush_primary_plane(dev_priv, intel_crtc->plane);
944
945 /*
946 * Avoid underruns when disabling the sprite.
947 * FIXME remove once watermark updates are done properly.
948 */
949 intel_crtc->atomic.wait_vblank = true;
950 intel_crtc->atomic.update_sprite_watermarks |= (1 << drm_plane_index(plane));
951} 937}
952 938
953/** 939/**
@@ -1266,6 +1252,16 @@ finish:
1266 plane->state->fb->modifier[0] != 1252 plane->state->fb->modifier[0] !=
1267 state->base.fb->modifier[0]) 1253 state->base.fb->modifier[0])
1268 intel_crtc->atomic.update_wm = true; 1254 intel_crtc->atomic.update_wm = true;
1255
1256 if (!state->visible) {
1257 /*
1258 * Avoid underruns when disabling the sprite.
1259 * FIXME remove once watermark updates are done properly.
1260 */
1261 intel_crtc->atomic.wait_vblank = true;
1262 intel_crtc->atomic.update_sprite_watermarks |=
1263 (1 << drm_plane_index(plane));
1264 }
1269 } 1265 }
1270 1266
1271 return 0; 1267 return 0;