Liviu Dudau writes: > From: Brian Starkey > > 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. > diff --git a/include/drm/drm_writeback.h b/include/drm/drm_writeback.h > index cf3a28676006a..6a7462c1821ad 100644 > --- a/include/drm/drm_writeback.h > +++ b/include/drm/drm_writeback.h > @@ -49,6 +49,32 @@ struct drm_writeback_connector { > * drm_writeback_signal_completion() > */ > struct list_head job_queue; > + > + /** > + * @fence_context: > + * > + * timeline context used for fence operations. > + */ > + unsigned int fence_context; > + /** > + * @fence_lock: > + * > + * spinlock to protect the fences in the fence_context. > + */ > + spinlock_t fence_lock; > + /** > + * @fence_seqno: > + * > + * Seqno variable used as monotonic counter for the fences > + * created on the connector's timeline. > + */ > + unsigned long fence_seqno; > + /** > + * @timeline_name: > + * > + * The name of the connector's fence timeline. > + */ > + char timeline_name[32]; > }; > > struct drm_writeback_job { > @@ -59,12 +85,14 @@ struct drm_writeback_job { > * framebuffer reference to a workqueue. > */ > struct work_struct cleanup_work; > + > /** > * @list_entry: > * > * List item for the connector's @job_queue > */ > struct list_head list_entry; > + > /** > * @fb: > * Move this hunk into patch 1? Other than that, the series is: Reviewed-by: Eric Anholt It's pretty clean and makes sense to me. I only had some questions about the job_queue, which seems superfluous if we aren't supporting firing off a new writeback while an old one is outstanding (and maybe we should throw an error in that case). Still, I think this is ready to land.