]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - include/drm/drm_vblank.h
drm: Widen vblank count to 64-bits [v3]
[linux.git] / include / drm / drm_vblank.h
index 7fba9efe495165097a08930b5d1e769f1626902b..cce53130510f07228d1e7a28f9cc9cb10d252999 100644 (file)
@@ -47,6 +47,10 @@ struct drm_pending_vblank_event {
         * @pipe: drm_crtc_index() of the &drm_crtc this event is for.
         */
        unsigned int pipe;
+       /**
+        * @sequence: frame event should be triggered at
+        */
+       u64 sequence;
        /**
         * @event: Actual event which will be sent to userspace.
         */
@@ -88,11 +92,11 @@ struct drm_vblank_crtc {
        /**
         * @count: Current software vblank counter.
         */
-       u32 count;
+       u64 count;
        /**
         * @time: Vblank timestamp corresponding to @count.
         */
-       struct timeval time;
+       ktime_t time;
 
        /**
         * @refcount: Number of users/waiters of the vblank interrupt. Only when
@@ -152,9 +156,9 @@ struct drm_vblank_crtc {
 };
 
 int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs);
-u32 drm_crtc_vblank_count(struct drm_crtc *crtc);
-u32 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
-                                  struct timeval *vblanktime);
+u64 drm_crtc_vblank_count(struct drm_crtc *crtc);
+u64 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
+                                  ktime_t *vblanktime);
 void drm_crtc_send_vblank_event(struct drm_crtc *crtc,
                               struct drm_pending_vblank_event *e);
 void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
@@ -172,7 +176,7 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc);
 
 bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
                                           unsigned int pipe, int *max_error,
-                                          struct timeval *vblank_time,
+                                          ktime_t *vblank_time,
                                           bool in_vblank_irq);
 void drm_calc_timestamping_constants(struct drm_crtc *crtc,
                                     const struct drm_display_mode *mode);