[PATCH 6/6] intr

Chris Wilson chris at chris-wilson.co.uk
Wed Jun 7 20:14:43 UTC 2017


---
 drivers/gpu/drm/i915/intel_display.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 1954e9c98155..baaf9112f7ab 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13286,11 +13286,20 @@ static int intel_atomic_commit(struct drm_device *dev,
 
 	i915_sw_fence_commit(&intel_state->commit_ready);
 	if (!nonblock) {
-		i915_sw_fence_wait(&intel_state->commit_ready);
-		intel_atomic_commit_tail(state);
+		struct i915_sw_fence *fence = &intel_state->commit_ready;
+
+		ret = wait_event_interruptible_timeout(fence->wait,
+						       i915_sw_fence_done(fence),
+						       60*HZ);
+		if (ret == 0)
+			ret = -ETIMEDOUT;
+		if (ret > 0) {
+			intel_atomic_commit_tail(state);
+			ret = 0;
+		}
 	}
 
-	return 0;
+	return ret;
 }
 
 static const struct drm_crtc_funcs intel_crtc_funcs = {
-- 
2.11.0



More information about the Intel-gfx-trybot mailing list