Commit 2ae9e365 authored by Daniel Vetter's avatar Daniel Vetter

drm/i915/fbc: only update no_fbc_reason when active

In our snb farm in CI we have plenty of underruns, but not enough
stolen memory to enable fbc. Which means every time there's an
underrun the no_fbc_reason swichtes to something that makes
kms_frontbuffer_tracking fail instead of skip, adding massive amounts
of additional noise to igt test runs.

Make sure we don't try to disable fbc when it's off already.

v2: Squash in additional WARN_ON suggestion from Chris.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Reviewed-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170811072327.4335-1-daniel.vetter@ffwll.ch
parent 7ea1adf3
...@@ -461,6 +461,8 @@ static void intel_fbc_schedule_activation(struct intel_crtc *crtc) ...@@ -461,6 +461,8 @@ static void intel_fbc_schedule_activation(struct intel_crtc *crtc)
struct intel_fbc_work *work = &fbc->work; struct intel_fbc_work *work = &fbc->work;
WARN_ON(!mutex_is_locked(&fbc->lock)); WARN_ON(!mutex_is_locked(&fbc->lock));
if (WARN_ON(!fbc->enabled))
return;
if (drm_crtc_vblank_get(&crtc->base)) { if (drm_crtc_vblank_get(&crtc->base)) {
DRM_ERROR("vblank not available for FBC on pipe %c\n", DRM_ERROR("vblank not available for FBC on pipe %c\n",
...@@ -1216,7 +1218,7 @@ static void intel_fbc_underrun_work_fn(struct work_struct *work) ...@@ -1216,7 +1218,7 @@ static void intel_fbc_underrun_work_fn(struct work_struct *work)
mutex_lock(&fbc->lock); mutex_lock(&fbc->lock);
/* Maybe we were scheduled twice. */ /* Maybe we were scheduled twice. */
if (fbc->underrun_detected) if (fbc->underrun_detected || !fbc->enabled)
goto out; goto out;
DRM_DEBUG_KMS("Disabling FBC due to FIFO underrun.\n"); DRM_DEBUG_KMS("Disabling FBC due to FIFO underrun.\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment