diff options
Diffstat (limited to 'shared/mach64.h')
-rw-r--r-- | shared/mach64.h | 86 |
1 files changed, 3 insertions, 83 deletions
diff --git a/shared/mach64.h b/shared/mach64.h index 86e15565..5993f13f 100644 --- a/shared/mach64.h +++ b/shared/mach64.h @@ -2,6 +2,7 @@ * Created: Wed Feb 14 16:07:10 2001 by gareth@valinux.com * * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. + * Copyright 2002-2003 Leif Delgass * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +19,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. @@ -70,94 +71,13 @@ [DRM_IOCTL_NR(DRM_IOCTL_MACH64_FLUSH)] = { mach64_dma_flush, 1, 0 }, \ [DRM_IOCTL_NR(DRM_IOCTL_MACH64_GETPARAM)] = { mach64_get_param, 1, 0 } - /* DMA customization: */ #define __HAVE_DMA 1 -#define __HAVE_DMA_FREELIST 0 - -#define MACH64_INTERRUPTS 0 - -#if MACH64_INTERRUPTS #define __HAVE_DMA_IRQ 1 -#define __HAVE_DMA_IRQ_BH 1 +#define __HAVE_VBL_IRQ 1 #define __HAVE_SHARED_IRQ 1 -/* called before installing service routine in _irq_install */ -#define DRIVER_PREINSTALL() \ -do { \ - u32 tmp; \ - drm_mach64_private_t *dev_priv = dev->dev_private; \ - \ - tmp = MACH64_READ(MACH64_CRTC_INT_CNTL); \ - DRM_DEBUG("Before PREINSTALL: CRTC_INT_CNTL = 0x%08x\n", tmp); \ - /* clear active interrupts */ \ - if ( tmp & (MACH64_CRTC_VBLANK_INT \ - | MACH64_CRTC_BUSMASTER_EOL_INT) ) { \ - /* ack bits are the same as active interrupt bits, */ \ - /* so write back tmp to clear active interrupts */ \ - MACH64_WRITE( MACH64_CRTC_INT_CNTL, tmp ); \ - } \ - \ - /* disable interrupts */ \ - tmp &= ~(MACH64_CRTC_VBLANK_INT_EN \ - | MACH64_CRTC_BUSMASTER_EOL_INT_EN); \ - MACH64_WRITE( MACH64_CRTC_INT_CNTL, tmp ); \ - DRM_DEBUG("After PREINSTALL: CRTC_INT_CNTL = 0x%08x\n", tmp); \ - \ -} while(0) - -/* called after installing service routine in _irq_install */ -#define DRIVER_POSTINSTALL() \ -do { \ - /* clear and enable interrupts */ \ - u32 tmp; \ - drm_mach64_private_t *dev_priv = dev->dev_private; \ - \ - tmp = MACH64_READ(MACH64_CRTC_INT_CNTL); \ - DRM_DEBUG("Before POSTINSTALL: CRTC_INT_CNTL = 0x%08x\n", tmp); \ - /* clear active interrupts */ \ - if ( tmp & (MACH64_CRTC_VBLANK_INT \ - | MACH64_CRTC_BUSMASTER_EOL_INT) ) { \ - /* ack bits are the same as active interrupt bits, */ \ - /* so write back tmp to clear active interrupts */ \ - MACH64_WRITE( MACH64_CRTC_INT_CNTL, tmp ); \ - } \ - \ - /* enable interrupts */ \ - tmp |= (MACH64_CRTC_VBLANK_INT_EN \ - | MACH64_CRTC_BUSMASTER_EOL_INT_EN); \ - MACH64_WRITE( MACH64_CRTC_INT_CNTL, tmp ); \ - DRM_DEBUG("After POSTINSTALL: CRTC_INT_CNTL = 0x%08x\n", tmp); \ - \ -} while(0) - -/* called before freeing irq in _irq_uninstall */ -#define DRIVER_UNINSTALL() \ -do { \ - u32 tmp; \ - drm_mach64_private_t *dev_priv = dev->dev_private; \ - if (dev_priv) { \ - tmp = MACH64_READ(MACH64_CRTC_INT_CNTL); \ - DRM_DEBUG("Before UNINSTALL: CRTC_INT_CNTL = 0x%08x\n", tmp); \ - /* clear active interrupts */ \ - if ( tmp & (MACH64_CRTC_VBLANK_INT \ - | MACH64_CRTC_BUSMASTER_EOL_INT) ) { \ - /* ack bits are the same as active interrupt bits, */ \ - /* so write back tmp to clear active interrupts */ \ - MACH64_WRITE( MACH64_CRTC_INT_CNTL, tmp ); \ - } \ - \ - /* disable interrupts */ \ - tmp &= ~(MACH64_CRTC_VBLANK_INT_EN \ - | MACH64_CRTC_BUSMASTER_EOL_INT_EN); \ - MACH64_WRITE( MACH64_CRTC_INT_CNTL, tmp ); \ - DRM_DEBUG("After UNINSTALL: CRTC_INT_CNTL = 0x%08x\n", tmp); \ - } \ -} while(0) - -#endif /* MACH64_INTERRUPTS */ - /* Buffer customization: */ |