On Thu, Sep 24, 2015 at 06:35:36PM +0200, Thierry Reding wrote:
From: Thierry Reding treding@nvidia.com
This function is the KMS native variant of drm_vblank_count_and_time(). It takes a struct drm_crtc * instead of a struct drm_device * and an index of the CRTC.
Eventually the goal is to access vblank data through the CRTC only so that the per-CRTC data can be moved to struct drm_crtc.
Signed-off-by: Thierry Reding treding@nvidia.com
Applied to drm-misc, thanks. -Daniel
drivers/gpu/drm/drm_irq.c | 23 +++++++++++++++++++++++ include/drm/drmP.h | 2 ++ 2 files changed, 25 insertions(+)
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 525bd82ab514..d81e3724cca3 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -909,6 +909,8 @@ EXPORT_SYMBOL(drm_crtc_vblank_count);
- vblank events since the system was booted, including lost events due to
- modesetting activity. Returns corresponding system timestamp of the time
- of the vblank interval that corresponds to the current vblank counter value.
*/
- This is the legacy version of drm_crtc_vblank_count_and_time().
u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe, struct timeval *vblanktime) @@ -936,6 +938,27 @@ u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe, } EXPORT_SYMBOL(drm_vblank_count_and_time);
+/**
- drm_crtc_vblank_count_and_time - retrieve "cooked" vblank counter value
and the system timestamp corresponding to that vblank counter value
- @crtc: which counter to retrieve
- @vblanktime: Pointer to struct timeval to receive the vblank timestamp.
- Fetches the "cooked" vblank count value that represents the number of
- vblank events since the system was booted, including lost events due to
- modesetting activity. Returns corresponding system timestamp of the time
- of the vblank interval that corresponds to the current vblank counter value.
- This is the native KMS version of drm_vblank_count_and_time().
- */
+u32 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
struct timeval *vblanktime)
+{
- return drm_vblank_count_and_time(crtc->dev, drm_crtc_index(crtc),
vblanktime);
+} +EXPORT_SYMBOL(drm_crtc_vblank_count_and_time);
static void send_vblank_event(struct drm_device *dev, struct drm_pending_vblank_event *e, unsigned long seq, struct timeval *now) diff --git a/include/drm/drmP.h b/include/drm/drmP.h index ce693a1366c1..53960444a423 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -889,6 +889,8 @@ extern u32 drm_vblank_count(struct drm_device *dev, unsigned int pipe); extern u32 drm_crtc_vblank_count(struct drm_crtc *crtc); extern u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe, struct timeval *vblanktime); +extern u32 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
struct timeval *vblanktime);
extern void drm_send_vblank_event(struct drm_device *dev, unsigned int pipe, struct drm_pending_vblank_event *e); extern void drm_crtc_send_vblank_event(struct drm_crtc *crtc, -- 2.5.0
dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel