Merge tag 'chrome-platform-for-linus-4.17' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-block.git] / include / drm / drm_vblank.h
index 848b463a0af516ebd9894cf7917cff8eeb2cde9e..d25a9603ab570518eb38945a920f459dae343397 100644 (file)
@@ -55,8 +55,24 @@ struct drm_pending_vblank_event {
         * @event: Actual event which will be sent to userspace.
         */
        union {
+               /**
+                * @event.base: DRM event base class.
+                */
                struct drm_event base;
+
+               /**
+                * @event.vbl:
+                *
+                * Event payload for vblank events, requested through
+                * either the MODE_PAGE_FLIP or MODE_ATOMIC IOCTL. Also
+                * generated by the legacy WAIT_VBLANK IOCTL, but new userspace
+                * should use MODE_QUEUE_SEQUENCE and &event.seq instead.
+                */
                struct drm_event_vblank vbl;
+
+               /**
+                * @event.seq: Event payload for the MODE_QUEUEU_SEQUENCE IOCTL.
+                */
                struct drm_event_crtc_sequence seq;
        } event;
 };
@@ -179,7 +195,9 @@ void drm_crtc_wait_one_vblank(struct drm_crtc *crtc);
 void drm_crtc_vblank_off(struct drm_crtc *crtc);
 void drm_crtc_vblank_reset(struct drm_crtc *crtc);
 void drm_crtc_vblank_on(struct drm_crtc *crtc);
-u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc);
+u64 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc);
+void drm_vblank_restore(struct drm_device *dev, unsigned int pipe);
+void drm_crtc_vblank_restore(struct drm_crtc *crtc);
 
 bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
                                           unsigned int pipe, int *max_error,