Currently there's no indication if fence wait timed out. Debug log about timeouts and other errors.
Cc: Ville Syrjälä <[email protected]> Cc: Maarten Lankhorst <[email protected]> Signed-off-by: Jani Nikula <[email protected]> --- drivers/gpu/drm/i915/display/intel_display.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c index eed906a30749..aa5d41dac8a9 100644 --- a/drivers/gpu/drm/i915/display/intel_display.c +++ b/drivers/gpu/drm/i915/display/intel_display.c @@ -7274,6 +7274,7 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state) static void intel_atomic_commit_fence_wait(struct intel_atomic_state *state) { + struct intel_display *display = to_intel_display(state); struct drm_plane *plane; struct drm_plane_state *new_plane_state; long ret; @@ -7285,8 +7286,13 @@ static void intel_atomic_commit_fence_wait(struct intel_atomic_state *state) ret = dma_fence_wait_timeout(new_plane_state->fence, false, i915_fence_timeout()); - if (ret <= 0) + if (!ret) + ret = -ETIMEDOUT; + if (ret < 0) { + drm_dbg_kms(display->drm, "[PLANE:%d:%s] fence wait failed (%pe)\n", + plane->base.id, plane->name, ERR_PTR(ret)); break; + } dma_fence_put(new_plane_state->fence); new_plane_state->fence = NULL; -- 2.47.3
