aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm/drm_vblank.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/drm/drm_vblank.h')
-rw-r--r--include/drm/drm_vblank.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/include/drm/drm_vblank.h b/include/drm/drm_vblank.h
index 6ad9630d4f48..e528bb2f659d 100644
--- a/include/drm/drm_vblank.h
+++ b/include/drm/drm_vblank.h
@@ -129,6 +129,26 @@ struct drm_vblank_crtc {
129 */ 129 */
130 u32 last; 130 u32 last;
131 /** 131 /**
132 * @max_vblank_count:
133 *
134 * Maximum value of the vblank registers for this crtc. This value +1
135 * will result in a wrap-around of the vblank register. It is used
136 * by the vblank core to handle wrap-arounds.
137 *
138 * If set to zero the vblank core will try to guess the elapsed vblanks
139 * between times when the vblank interrupt is disabled through
140 * high-precision timestamps. That approach is suffering from small
141 * races and imprecision over longer time periods, hence exposing a
142 * hardware vblank counter is always recommended.
143 *
144 * This is the runtime configurable per-crtc maximum set through
145 * drm_crtc_set_max_vblank_count(). If this is used the driver
146 * must leave the device wide &drm_device.max_vblank_count at zero.
147 *
148 * If non-zero, &drm_crtc_funcs.get_vblank_counter must be set.
149 */
150 u32 max_vblank_count;
151 /**
132 * @inmodeset: Tracks whether the vblank is disabled due to a modeset. 152 * @inmodeset: Tracks whether the vblank is disabled due to a modeset.
133 * For legacy driver bit 2 additionally tracks whether an additional 153 * For legacy driver bit 2 additionally tracks whether an additional
134 * temporary vblank reference has been acquired to paper over the 154 * temporary vblank reference has been acquired to paper over the
@@ -206,4 +226,6 @@ bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
206void drm_calc_timestamping_constants(struct drm_crtc *crtc, 226void drm_calc_timestamping_constants(struct drm_crtc *crtc,
207 const struct drm_display_mode *mode); 227 const struct drm_display_mode *mode);
208wait_queue_head_t *drm_crtc_vblank_waitqueue(struct drm_crtc *crtc); 228wait_queue_head_t *drm_crtc_vblank_waitqueue(struct drm_crtc *crtc);
229void drm_crtc_set_max_vblank_count(struct drm_crtc *crtc,
230 u32 max_vblank_count);
209#endif 231#endif