summaryrefslogtreecommitdiffstats
path: root/include/drm/drm_crtc.h
diff options
context:
space:
mode:
authorDaniel Vetter2017-03-08 15:12:39 +0100
committerDaniel Vetter2017-03-09 16:18:02 +0100
commit66f8c10003966130b0b2812fcbdfa6389bccd577 (patch)
tree145c38d6f3974c18fcb84d704dcaf9f95d9c338e /include/drm/drm_crtc.h
parentdrm: Remove drmP.h include from drm_kms_helper_common.c (diff)
downloadkernel-qcow2-linux-66f8c10003966130b0b2812fcbdfa6389bccd577.tar.gz
kernel-qcow2-linux-66f8c10003966130b0b2812fcbdfa6389bccd577.tar.xz
kernel-qcow2-linux-66f8c10003966130b0b2812fcbdfa6389bccd577.zip
drm/doc: document fallback behaviour for atomic events
Worst case if the hw can't support completion signalling in a race-free way we want the event to be too late, not too early. Text adapted from a proposal from Laurent - the other side of how to make hw work correctly where it's possible is imo already sufficiently documented. v2: Review from Laurent. Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/20170308141257.12119-7-daniel.vetter@ffwll.ch
Diffstat (limited to 'include/drm/drm_crtc.h')
-rw-r--r--include/drm/drm_crtc.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index cba29ffedafd..6ef59da3fd8e 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -204,6 +204,12 @@ struct drm_crtc_state {
* drm_crtc_arm_vblank_event(). See the documentation of that function
* for a detailed discussion of the constraints it needs to be used
* safely.
+ *
+ * If the device can't notify of flip completion in a race-free way
+ * at all, then the event should be armed just after the page flip is
+ * committed. In the worst case the driver will send the event to
+ * userspace one frame too late. This doesn't allow for a real atomic
+ * update, but it should avoid tearing.
*/
struct drm_pending_vblank_event *event;