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 7e9081c5aa
("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/
This commit is contained in:

committed by
Liviu Dudau

parent
935774cd71
commit
b13cc8dd58
@@ -160,6 +160,14 @@ struct __drm_crtcs_state {
|
||||
struct __drm_connnectors_state {
|
||||
struct drm_connector *ptr;
|
||||
struct drm_connector_state *state, *old_state, *new_state;
|
||||
/**
|
||||
* @out_fence_ptr:
|
||||
*
|
||||
* User-provided pointer which the kernel uses to return a sync_file
|
||||
* file descriptor. Used by writeback connectors to signal completion of
|
||||
* the writeback.
|
||||
*/
|
||||
s32 __user *out_fence_ptr;
|
||||
};
|
||||
|
||||
struct drm_private_obj;
|
||||
|
Reference in New Issue
Block a user