diff options
author | Kristian Høgsberg <krh@bitplanet.net> | 2009-09-11 14:33:34 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-11-17 19:02:47 -0500 |
commit | c9a9c5e02aedc1a2815877b0268f886d2640b771 (patch) | |
tree | 51f69f2ec6dcebb019cd6aa22b9e29ee48c397c1 /drivers/gpu/drm/drm_stub.c | |
parent | 799dd75b1a8380a967c929a4551895788c374b31 (diff) |
drm: Add async event synchronization for drmWaitVblank
This patch adds a new flag to the drmWaitVblank ioctl, which asks the drm
to return immediately and notify userspace when the specified vblank sequence
happens by sending an event back on the drm fd.
The event mechanism works with the other flags supported by the ioctls,
specifically, the vblank sequence can be specified relatively or absolutely,
and works for primary and seconday crtc.
The signal field of the vblank request is used to provide user data,
which will be sent back to user space in the vblank event.
Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
-rw-r--r-- | drivers/gpu/drm/drm_stub.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index 55bb8a82d612..adb864dfef3e 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c | |||
@@ -220,9 +220,11 @@ static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev, | |||
220 | INIT_LIST_HEAD(&dev->ctxlist); | 220 | INIT_LIST_HEAD(&dev->ctxlist); |
221 | INIT_LIST_HEAD(&dev->vmalist); | 221 | INIT_LIST_HEAD(&dev->vmalist); |
222 | INIT_LIST_HEAD(&dev->maplist); | 222 | INIT_LIST_HEAD(&dev->maplist); |
223 | INIT_LIST_HEAD(&dev->vblank_event_list); | ||
223 | 224 | ||
224 | spin_lock_init(&dev->count_lock); | 225 | spin_lock_init(&dev->count_lock); |
225 | spin_lock_init(&dev->drw_lock); | 226 | spin_lock_init(&dev->drw_lock); |
227 | spin_lock_init(&dev->event_lock); | ||
226 | init_timer(&dev->timer); | 228 | init_timer(&dev->timer); |
227 | mutex_init(&dev->struct_mutex); | 229 | mutex_init(&dev->struct_mutex); |
228 | mutex_init(&dev->ctxlist_mutex); | 230 | mutex_init(&dev->ctxlist_mutex); |