From 55acd0d5a64a2ee6b0cecc75872fbf8c4bb42a0c Mon Sep 17 00:00:00 2001 From: Michel Daenzer Date: Wed, 25 Sep 2002 17:18:19 +0000 Subject: common ioctl to wait for vertical blank IRQs --- linux/drmP.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'linux/drmP.h') diff --git a/linux/drmP.h b/linux/drmP.h index 7d82fce3..6f6f91c4 100644 --- a/linux/drmP.h +++ b/linux/drmP.h @@ -577,6 +577,10 @@ typedef struct drm_device { int last_context; /* Last current context */ unsigned long last_switch; /* jiffies at last context switch */ struct tq_struct tq; +#if __HAVE_VBL_IRQ + wait_queue_head_t vbl_queue; + atomic_t vbl_received; +#endif cycles_t ctx_start; cycles_t lck_start; #if __HAVE_DMA_HISTOGRAM @@ -809,6 +813,14 @@ extern int DRM(irq_install)( drm_device_t *dev, int irq ); extern int DRM(irq_uninstall)( drm_device_t *dev ); extern void DRM(dma_service)( int irq, void *device, struct pt_regs *regs ); +extern void DRM(driver_irq_preinstall)( drm_device_t *dev ); +extern void DRM(driver_irq_postinstall)( drm_device_t *dev ); +extern void DRM(driver_irq_uninstall)( drm_device_t *dev ); +#if __HAVE_VBL_IRQ +extern int DRM(wait_vblank)(struct inode *inode, struct file *filp, + unsigned int cmd, unsigned long arg); +extern int DRM(vblank_wait)(drm_device_t *dev, unsigned int *vbl_seq); +#endif #if __HAVE_DMA_IRQ_BH extern void DRM(dma_immediate_bh)( void *dev ); #endif -- cgit v1.2.3