diff options
author | Gareth Hughes <gareth@users.sourceforge.net> | 2001-06-18 12:59:42 +0000 |
---|---|---|
committer | Gareth Hughes <gareth@users.sourceforge.net> | 2001-06-18 12:59:42 +0000 |
commit | 3a410059b43027c08bcb0fef307dd4ee7734197e (patch) | |
tree | 39f50c57ebef8e38881fc69cf4dcc704170bec5a /linux-core | |
parent | d87c873df05eb3a110316c7af2358553fa7f988e (diff) |
Enable shared IRQs in DMA template, use in i810 driver.
Diffstat (limited to 'linux-core')
-rw-r--r-- | linux-core/drm_dma.c | 11 | ||||
-rw-r--r-- | linux-core/i810_dma.c | 5 |
2 files changed, 15 insertions, 1 deletions
diff --git a/linux-core/drm_dma.c b/linux-core/drm_dma.c index e715bd41..85fa1472 100644 --- a/linux-core/drm_dma.c +++ b/linux-core/drm_dma.c @@ -40,6 +40,15 @@ #ifndef __HAVE_DMA_RECLAIM #define __HAVE_DMA_RECLAIM 0 #endif +#ifndef __HAVE_SHARED_IRQ +#define __HAVE_SHARED_IRQ 0 +#endif + +#if __HAVE_SHARED_IRQ +#define DRM_IRQ_TYPE SA_SHIRQ +#else +#define DRM_IRQ_TYPE 0 +#endif #if __HAVE_DMA @@ -534,7 +543,7 @@ int DRM(irq_install)( drm_device_t *dev, int irq ) /* Install handler */ ret = request_irq( dev->irq, DRM(dma_service), - 0, dev->devname, dev ); + DRM_IRQ_TYPE, dev->devname, dev ); if ( ret < 0 ) { down( &dev->struct_sem ); dev->irq = 0; diff --git a/linux-core/i810_dma.c b/linux-core/i810_dma.c index 8a5503ea..25caca6b 100644 --- a/linux-core/i810_dma.c +++ b/linux-core/i810_dma.c @@ -1123,6 +1123,11 @@ int i810_clear_bufs(struct inode *inode, struct file *filp, return -EINVAL; } + /* GH: Someone's doing nasty things... */ + if (!dev->dev_private) { + return -EINVAL; + } + i810_dma_dispatch_clear( dev, clear.flags, clear.clear_color, clear.clear_depth ); |