diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-05-05 18:20:39 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-05-05 18:20:39 +0200 |
commit | db04d630dc49f30f9fc18fb00e034132abd1e4c0 (patch) | |
tree | 8d1d4a458524ffb6ffc6cc708230e642d3d933dd /include | |
parent | 08686c79ae55acc256152f4c746e42bf935ea929 (diff) | |
parent | 4f5bd845c878c428c1982e93e9a9194b34bf825b (diff) |
Merge remote-tracking branch 'origin/topic/drm-vblank-rework' into drm-intel-nightly
Diffstat (limited to 'include')
-rw-r--r-- | include/drm/drmP.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 12f10bc2395f..7339b2b00724 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h @@ -1024,14 +1024,17 @@ struct drm_pending_vblank_event { }; struct drm_vblank_crtc { + struct drm_device *dev; /* pointer to the drm_device */ wait_queue_head_t queue; /**< VBLANK wait queue */ struct timeval time[DRM_VBLANKTIME_RBSIZE]; /**< timestamp of current count */ + struct timer_list disable_timer; /* delayed disable timer */ atomic_t count; /**< number of VBLANK interrupts */ atomic_t refcount; /* number of users of vblank interruptsper crtc */ u32 last; /* protected by dev->vbl_lock, used */ /* for wraparound handling */ u32 last_wait; /* Last vblank seqno waited per CRTC */ unsigned int inmodeset; /* Display driver is setting mode */ + int crtc; /* crtc index */ bool enabled; /* so we don't call enable more than once per disable */ }; @@ -1119,7 +1122,6 @@ struct drm_device { spinlock_t vblank_time_lock; /**< Protects vblank count and time updates during vblank enable/disable */ spinlock_t vbl_lock; - struct timer_list vblank_disable_timer; u32 max_vblank_count; /**< size of vblank counter register */ @@ -1358,6 +1360,7 @@ extern bool drm_handle_vblank(struct drm_device *dev, int crtc); extern int drm_vblank_get(struct drm_device *dev, int crtc); extern void drm_vblank_put(struct drm_device *dev, int 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_vblank_cleanup(struct drm_device *dev); extern u32 drm_get_last_vbltimestamp(struct drm_device *dev, int crtc, struct timeval *tvblank, unsigned flags); |