summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_frontbuffer.c
diff options
context:
space:
mode:
authorDaniel Vetter2015-06-18 10:30:21 +0200
committerDaniel Vetter2015-06-24 00:22:35 +0200
commit27e78a2a1f92e79707b4fb18cff1276088ef9178 (patch)
tree4ec9c1ea225820e9dbacb27427305a8426ab7322 /drivers/gpu/drm/i915/intel_frontbuffer.c
parentdrm/i915: Clear fb_tracking.busy_bits also for synchronous flips (diff)
downloadkernel-qcow2-linux-27e78a2a1f92e79707b4fb18cff1276088ef9178.tar.gz
kernel-qcow2-linux-27e78a2a1f92e79707b4fb18cff1276088ef9178.tar.xz
kernel-qcow2-linux-27e78a2a1f92e79707b4fb18cff1276088ef9178.zip
drm/i915: Filter out no-op frontbuffer tracking flushes
Paulo noticed that the fbc frontbuffer tracking flush callback occasionally gets a call without any bit set. This can happen when we have to filter flush calls due to e.g. gpu rendering. Filter these out. Reported-by: Paulo Zanoni <przanoni@gmail.com> Cc: Paulo Zanoni <przanoni@gmail.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_frontbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/intel_frontbuffer.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_frontbuffer.c b/drivers/gpu/drm/i915/intel_frontbuffer.c
index 3b0ac73ede8f..6a70a51332e9 100644
--- a/drivers/gpu/drm/i915/intel_frontbuffer.c
+++ b/drivers/gpu/drm/i915/intel_frontbuffer.c
@@ -175,6 +175,9 @@ void intel_frontbuffer_flush(struct drm_device *dev,
frontbuffer_bits &= ~dev_priv->fb_tracking.busy_bits;
mutex_unlock(&dev_priv->fb_tracking.lock);
+ if (!frontbuffer_bits)
+ return;
+
intel_mark_fb_busy(dev, frontbuffer_bits);
intel_edp_drrs_flush(dev, frontbuffer_bits);