diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-06-18 10:30:21 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-06-24 00:22:35 +0200 |
commit | 27e78a2a1f92e79707b4fb18cff1276088ef9178 (patch) | |
tree | 4ec9c1ea225820e9dbacb27427305a8426ab7322 /drivers/gpu/drm/i915/intel_frontbuffer.c | |
parent | fdbff9282c0f5f61ffc87d57461b04d943250910 (diff) |
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.c | 3 |
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); |