summaryrefslogtreecommitdiffstats
path: root/include/drm/drmP.h
diff options
context:
space:
mode:
authorDaniel Vetter2014-07-25 23:34:03 +0200
committerDaniel Vetter2014-08-11 14:25:21 +0200
commite8450f51a4b39cfe0878b4aee339820b2bfff240 (patch)
treeee6cf4685f8524bf47cf49911d61ba21c77a5b33 /include/drm/drmP.h
parentdrm: Add a plane->reset hook (diff)
downloadkernel-qcow2-linux-e8450f51a4b39cfe0878b4aee339820b2bfff240.tar.gz
kernel-qcow2-linux-e8450f51a4b39cfe0878b4aee339820b2bfff240.tar.xz
kernel-qcow2-linux-e8450f51a4b39cfe0878b4aee339820b2bfff240.zip
drm/irq: Implement a generic vblank_wait function
As usual in both a crtc index and a struct drm_crtc * version. The function assumes that no one drivers their display below 10Hz, and it will complain if the vblank wait takes longer than that. v2: Also check dev->max_vblank_counter since some drivers register a fake get_vblank_counter function. v3: Use drm_vblank_count instead of calling the low-level ->get_vblank_counter callback. That way we'll get the sw-cooked counter for platforms without proper vblank support and so can ditch the max_vblank_counter check again. v4: Review from Michel Dänzer: - Restore lost notes about v3: - Spelling in kerneldoc. - Inline wait_event condition. - s/vblank_wait/wait_one_vblank/ Cc: Michel Dänzer <michel@daenzer.net> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'include/drm/drmP.h')
-rw-r--r--include/drm/drmP.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index d3d9be6b83ef..c2209178981f 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -1327,6 +1327,8 @@ extern int drm_vblank_get(struct drm_device *dev, int crtc);
extern void drm_vblank_put(struct drm_device *dev, int crtc);
extern int drm_crtc_vblank_get(struct drm_crtc *crtc);
extern void drm_crtc_vblank_put(struct drm_crtc *crtc);
+extern void drm_wait_one_vblank(struct drm_device *dev, int crtc);
+extern void drm_crtc_wait_one_vblank(struct drm_crtc *crtc);
extern void drm_vblank_off(struct drm_device *dev, int crtc);
extern void drm_vblank_on(struct drm_device *dev, int crtc);
extern void drm_crtc_vblank_off(struct drm_crtc *crtc);