From db0d11941966bb19111bc780506802cb441627c5 Mon Sep 17 00:00:00 2001 From: Timo Aaltonen Date: Mon, 27 Jun 2022 13:20:58 +0300 Subject: [PATCH] Revert "drm/i915: Nuke ORIGIN_GTT" This reverts commit 61543565a606caf46d3199074035fb90c5a1711a. Signed-off-by: Timo Aaltonen --- drivers/gpu/drm/i915/display/intel_fbc.c | 10 +++++++++- drivers/gpu/drm/i915/display/intel_frontbuffer.h | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c index d1c2f7c44954f..79a747b4413bb 100644 --- a/drivers/gpu/drm/i915/display/intel_fbc.c +++ b/drivers/gpu/drm/i915/display/intel_fbc.c @@ -1136,7 +1136,7 @@ void intel_fbc_invalidate(struct drm_i915_private *dev_priv, if (!HAS_FBC(dev_priv)) return; - if (origin == ORIGIN_FLIP) + if (origin == ORIGIN_GTT || origin == ORIGIN_FLIP) return; mutex_lock(&fbc->lock); @@ -1157,6 +1157,14 @@ void intel_fbc_flush(struct drm_i915_private *dev_priv, if (!HAS_FBC(dev_priv)) return; + /* + * GTT tracking does not nuke the entire cfb + * so don't clear busy_bits set for some other + * reason. + */ + if (origin == ORIGIN_GTT) + return; + mutex_lock(&fbc->lock); fbc->busy_bits &= ~frontbuffer_bits; diff --git a/drivers/gpu/drm/i915/display/intel_frontbuffer.h b/drivers/gpu/drm/i915/display/intel_frontbuffer.h index 4b977c1e4d52b..6d41f53944250 100644 --- a/drivers/gpu/drm/i915/display/intel_frontbuffer.h +++ b/drivers/gpu/drm/i915/display/intel_frontbuffer.h @@ -33,7 +33,8 @@ struct drm_i915_private; enum fb_op_origin { - ORIGIN_CPU = 0, + ORIGIN_GTT, + ORIGIN_CPU, ORIGIN_CS, ORIGIN_FLIP, ORIGIN_DIRTYFB,