drm: writeback: Add out-fences for writeback connectors
authorBrian Starkey <brian.starkey@arm.com>
Wed, 29 Mar 2017 16:42:33 +0000 (17:42 +0100)
committerLiviu Dudau <Liviu.Dudau@arm.com>
Wed, 20 Jun 2018 14:29:18 +0000 (15:29 +0100)
commitb13cc8dd588434e2aec781e6d12224e4c408ac18
treec202a3e17b01d1db38cebd680dd7d5cdc0f641cf
parent935774cd71fe604cc8ed24adcb507d7784255672
drm: writeback: Add out-fences for writeback connectors

Add the WRITEBACK_OUT_FENCE_PTR property to writeback connectors, to
enable userspace to get a fence which will signal once the writeback is
complete. It is not allowed to request an out-fence without a
framebuffer attached to the connector.

A timeline is added to drm_writeback_connector for use by the writeback
out-fences.

In the case of a commit failure or DRM_MODE_ATOMIC_TEST_ONLY, the fence
is set to -1.

Changes from v2:
 - Rebase onto Gustavo Padovan's v9 explicit sync series
 - Change out_fence_ptr type to s32 __user *
 - Set *out_fence_ptr to -1 in drm_atomic_connector_set_property
 - Store fence in drm_writeback_job
 Gustavo Padovan:
 - Move out_fence_ptr out of connector_state
 - Signal fence from drm_writeback_signal_completion instead of
   in driver directly

Changes from v3:
 - Rebase onto commit 7e9081c5aac7 ("drm/fence: fix memory overwrite
   when setting out_fence fd") (change out_fence_ptr to s32 __user *,
   for real this time.)
 - Update documentation around WRITEBACK_OUT_FENCE_PTR

Signed-off-by: Brian Starkey <brian.starkey@arm.com>
[rebased and fixed conflicts]
Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/229036/
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_writeback.c
include/drm/drm_atomic.h
include/drm/drm_connector.h
include/drm/drm_mode_config.h
include/drm/drm_writeback.h