diff options
| author | Jani Nikula <jani.nikula@intel.com> | 2014-05-07 15:04:02 +0300 |
|---|---|---|
| committer | Jani Nikula <jani.nikula@intel.com> | 2014-05-07 15:04:02 +0300 |
| commit | 0985dc1be0ef2e0cc15b3858ac18f51f6941741b (patch) | |
| tree | 71225c83617dab13a67a169778efa589c28684b4 /include/drm/drmP.h | |
| parent | 63ce94dfb22bd29b6a481b9319d09c5ad08a4774 (diff) | |
| parent | 4f5bd845c878c428c1982e93e9a9194b34bf825b (diff) | |
Merge remote-tracking branch 'origin/topic/drm-vblank-rework' into drm-intel-nightly
Diffstat (limited to 'include/drm/drmP.h')
| -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); |
