diff options
| -rw-r--r-- | linux-core/drmP.h | 2 | ||||
| -rw-r--r-- | linux-core/drm_drv.c | 8 | ||||
| -rw-r--r-- | linux-core/drm_fops.c | 13 | ||||
| -rw-r--r-- | linux/drmP.h | 2 | ||||
| -rw-r--r-- | linux/drm_drv.h | 8 | ||||
| -rw-r--r-- | linux/drm_fops.h | 13 | ||||
| -rw-r--r-- | linux/gamma.h | 22 | 
7 files changed, 50 insertions, 18 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 2cdc5f09..8ebd1ec8 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -684,6 +684,8 @@ extern void	     DRM(vm_shm_close)(struct vm_area_struct *vma);  extern int	     DRM(mmap_dma)(struct file *filp,  				   struct vm_area_struct *vma);  extern int	     DRM(mmap)(struct file *filp, struct vm_area_struct *vma); +extern unsigned int  DRM(poll)(struct file *filp, struct poll_table_struct *wait); +extern ssize_t       DRM(read)(struct file *filp, char *buf, size_t count, loff_t *off);  				/* Memory management support (drm_memory.h) */  extern void	     DRM(mem_init)(void); diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c index 036cee35..dad961f8 100644 --- a/linux-core/drm_drv.c +++ b/linux-core/drm_drv.c @@ -84,6 +84,12 @@  #ifndef __HAVE_SG  #define __HAVE_SG			0  #endif +#ifndef __HAVE_DRIVER_FOPS_READ +#define __HAVE_DRIVER_FOPS_READ		0 +#endif +#ifndef __HAVE_DRIVER_FOPS_POLL +#define __HAVE_DRIVER_FOPS_POLL		0 +#endif  #ifndef DRIVER_PREINIT  #define DRIVER_PREINIT() @@ -119,6 +125,8 @@ static struct file_operations	DRM(fops) = {	\  	.ioctl	 = DRM(ioctl),			\  	.mmap	 = DRM(mmap),			\  	.fasync  = DRM(fasync),			\ +	.poll	 = DRM(poll),			\ +	.read	 = DRM(read),			\  }  #endif diff --git a/linux-core/drm_fops.c b/linux-core/drm_fops.c index 3baac693..fc8618e1 100644 --- a/linux-core/drm_fops.c +++ b/linux-core/drm_fops.c @@ -113,4 +113,17 @@ int DRM(fasync)(int fd, struct file *filp, int on)  	return 0;  } +#if !__HAVE_DRIVER_FOPS_POLL +unsigned int DRM(poll)(struct file *filp, struct poll_table_struct *wait) +{ +	return 0; +} +#endif + +#if !__HAVE_DRIVER_FOPS_READ +ssize_t DRM(read)(struct file *filp, char *buf, size_t count, loff_t *off) +{ +	return 0; +} +#endif diff --git a/linux/drmP.h b/linux/drmP.h index 2cdc5f09..8ebd1ec8 100644 --- a/linux/drmP.h +++ b/linux/drmP.h @@ -684,6 +684,8 @@ extern void	     DRM(vm_shm_close)(struct vm_area_struct *vma);  extern int	     DRM(mmap_dma)(struct file *filp,  				   struct vm_area_struct *vma);  extern int	     DRM(mmap)(struct file *filp, struct vm_area_struct *vma); +extern unsigned int  DRM(poll)(struct file *filp, struct poll_table_struct *wait); +extern ssize_t       DRM(read)(struct file *filp, char *buf, size_t count, loff_t *off);  				/* Memory management support (drm_memory.h) */  extern void	     DRM(mem_init)(void); diff --git a/linux/drm_drv.h b/linux/drm_drv.h index 036cee35..dad961f8 100644 --- a/linux/drm_drv.h +++ b/linux/drm_drv.h @@ -84,6 +84,12 @@  #ifndef __HAVE_SG  #define __HAVE_SG			0  #endif +#ifndef __HAVE_DRIVER_FOPS_READ +#define __HAVE_DRIVER_FOPS_READ		0 +#endif +#ifndef __HAVE_DRIVER_FOPS_POLL +#define __HAVE_DRIVER_FOPS_POLL		0 +#endif  #ifndef DRIVER_PREINIT  #define DRIVER_PREINIT() @@ -119,6 +125,8 @@ static struct file_operations	DRM(fops) = {	\  	.ioctl	 = DRM(ioctl),			\  	.mmap	 = DRM(mmap),			\  	.fasync  = DRM(fasync),			\ +	.poll	 = DRM(poll),			\ +	.read	 = DRM(read),			\  }  #endif diff --git a/linux/drm_fops.h b/linux/drm_fops.h index 3baac693..fc8618e1 100644 --- a/linux/drm_fops.h +++ b/linux/drm_fops.h @@ -113,4 +113,17 @@ int DRM(fasync)(int fd, struct file *filp, int on)  	return 0;  } +#if !__HAVE_DRIVER_FOPS_POLL +unsigned int DRM(poll)(struct file *filp, struct poll_table_struct *wait) +{ +	return 0; +} +#endif + +#if !__HAVE_DRIVER_FOPS_READ +ssize_t DRM(read)(struct file *filp, char *buf, size_t count, loff_t *off) +{ +	return 0; +} +#endif diff --git a/linux/gamma.h b/linux/gamma.h index a5090c84..bff3f909 100644 --- a/linux/gamma.h +++ b/linux/gamma.h @@ -71,6 +71,9 @@  #define __HAVE_OLD_DMA			1  #define __HAVE_PCI_DMA			1 +#define __HAVE_DRIVER_FOPS_READ		1 +#define __HAVE_DRIVER_FOPS_POLL		1 +  #define __HAVE_MULTIPLE_DMA_QUEUES	1  #define __HAVE_DMA_WAITQUEUE		1 @@ -88,7 +91,7 @@  #define __HAVE_DMA_QUIESCENT		1  #define DRIVER_DMA_QUIESCENT() do {					\  	/* FIXME ! */ 							\ -	gamma_dma_quiescent_single(dev);					\ +	gamma_dma_quiescent_single(dev);				\  	return 0;							\  } while (0) @@ -98,22 +101,5 @@  #define DRIVER_AGP_BUFFERS_MAP( dev )					\  	((drm_gamma_private_t *)((dev)->dev_private))->buffers -/* Gamma makes use of a wierd mechanism to get the DDX driver to do - * context switches on behalf of the 3d clients via a trip to the - * kernel module.  This requires read/poll functionality on the drm - * file descriptor not normally present: - */ -#define DRIVER_FOPS				\ -static struct file_operations	DRM(fops) = {	\ -	.owner   = THIS_MODULE,			\ -	.open	 = DRM(open),			\ -	.flush	 = DRM(flush),			\ -	.release = DRM(release),		\ -	.ioctl	 = DRM(ioctl),			\ -	.mmap	 = DRM(mmap),			\ -	.read	 = DRM(read),			\ -	.fasync  = DRM(fasync),			\ -	.poll	 = DRM(poll),			\ -}  #endif /* __GAMMA_H__ */  | 
