From 8818d40d0d2bc0a8dc705c035aeee78d31b61a7f Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sun, 17 Apr 2016 19:25:22 +0100 Subject: [PATCH] drm/i915: Don't block cursor updates for pending flips --- drivers/gpu/drm/i915/intel_display.c | 3 +++ drivers/gpu/drm/i915/intel_drv.h | 1 + 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 36e7e29ea266..91a27911e76d 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -11655,6 +11655,7 @@ int intel_plane_atomic_calc_changes(struct drm_crtc_state *crtc_state, case DRM_PLANE_TYPE_PRIMARY: intel_crtc->atomic.pre_disable_primary = turn_off; intel_crtc->atomic.post_enable_primary = turn_on; + to_intel_crtc_state(crtc_state)->wait_for_flips = true; if (turn_off) { /* @@ -13160,6 +13161,8 @@ static int intel_atomic_prepare_commit(struct drm_device *dev, } for_each_crtc_in_state(state, crtc, crtc_state, i) { + if (!to_intel_crtc_state(crtc_state)->wait_for_flips) + continue; ret = intel_crtc_wait_for_pending_flips(crtc); if (ret) return ret; diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index bfb15a428b0d..c2959fcbb809 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -365,6 +365,7 @@ struct intel_crtc_state { unsigned long quirks; bool update_pipe; + bool wait_for_flips; /* Pipe source size (ie. panel fitter input size) * All planes will be positioned inside this space, -- 2.8.0.rc3