From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> It would require watermark reprogramming which we do not want to do. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> Cc: Daniel Vetter <daniel.vetter@xxxxxxxx> Cc: Sonika Jindal <sonika.jindal@xxxxxxxxx> Cc: Damien Lespiau <damien.lespiau@xxxxxxxxx> Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Tested-By: Intel Graphics QA PRTS (Patch Regression Test System Contact: shuang.he@xxxxxxxxx) Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> --- drivers/gpu/drm/i915/intel_display.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 489a134..a2b7259 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -10896,6 +10896,15 @@ void intel_check_page_flip(struct drm_device *dev, int pipe) spin_unlock(&dev->event_lock); } +static bool intel_is_y_tiled(uint64_t fb_modifier) +{ + if (fb_modifier == I915_FORMAT_MOD_Y_TILED || + fb_modifier == I915_FORMAT_MOD_Yf_TILED) + return true; + + return false; +} + static int intel_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, struct drm_pending_vblank_event *event, @@ -11025,6 +11034,14 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, + intel_crtc->dspaddr_offset; if (mmio_flip) { + /* Temporarily embedding knowledge of disallowed tiling mode + * transition which would require watermark reprogramming. + */ + if (intel_is_y_tiled(old_fb->modifier[0]) != + intel_is_y_tiled(fb->modifier[0])) { + ret = -EINVAL; + goto cleanup_unpin; + } ret = intel_queue_mmio_flip(dev, crtc, fb, obj, ring, page_flip_flags); if (ret) -- 2.1.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx